From a9cb8835c4e6962e62d57d4956f6ffacad1ccb40 Mon Sep 17 00:00:00 2001 From: AkshayCHD Date: Fri, 18 May 2018 13:39:24 +0530 Subject: [PATCH 1/2] Add databinding to fragments (#74) --- app/build.gradle | 3 ++ .../fragments/AdditionalDetailsFragment.java | 37 +++++++++---------- .../fragments/DataCenterFragment.java | 18 +++++---- .../fragments/SelectImageFragment.java | 18 +++++---- .../fragments/SelectSizeFragment.java | 17 +++++---- .../layout/fragment_additional_details.xml | 5 ++- app/src/main/res/layout/fragment_image.xml | 7 ++-- .../layout/fragment_select_data_center.xml | 7 ++-- app/src/main/res/layout/fragment_size.xml | 9 +++-- 9 files changed, 65 insertions(+), 56 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c769455..251ec67 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,6 +27,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + dataBinding { + enabled = true + } } ext { supportLibraryVersion = '25.3.1' diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java index b114859..7b36bff 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java @@ -7,14 +7,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; -import android.widget.CheckBox; import android.widget.CompoundButton; -import android.widget.EditText; import android.widget.Toast; +import android.databinding.DataBindingUtil; + import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.activities.DropletCreateActivity; +import in.tosc.digitaloceanapp.databinding.FragmentAdditionalDetailsBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Droplet; @@ -31,11 +31,7 @@ public class AdditionalDetailsFragment extends Fragment { public static final String TAG = "AdditionalFragment"; - CheckBox cbPrivateNetworking; - CheckBox cbBackups; - CheckBox cbIpv6; - EditText etDropletName; - Button btnCreateDroplet; + private FragmentAdditionalDetailsBinding binding; public AdditionalDetailsFragment() { // Required empty public constructor @@ -46,17 +42,14 @@ public AdditionalDetailsFragment() { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.fragment_additional_details, container, false); - cbPrivateNetworking = (CheckBox) view.findViewById(R.id.networkingCheckBox); - cbBackups = (CheckBox) view.findViewById(R.id.backupsCheckBox); - cbIpv6 = (CheckBox) view.findViewById(R.id.ipv6CheckBox); - etDropletName = (EditText) view.findViewById(R.id.etDropletName); - btnCreateDroplet = (Button) view.findViewById(R.id.btnCreateDroplet); + binding = DataBindingUtil.inflate( + inflater, R.layout.fragment_additional_details, container, false); + setAdditionalOptions(); - btnCreateDroplet.setOnClickListener(new View.OnClickListener() { + binding.btnCreateDroplet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String dropletName = etDropletName.getText().toString(); + String dropletName = binding.etDropletName.getText().toString(); if (dropletName.equals("")) { Toast.makeText(getContext(), "Droplet Name is Required", Toast.LENGTH_SHORT).show(); } else { @@ -96,12 +89,14 @@ public void onFailure(Call call, Throwable t) { } } }); - return view; + + return binding.getRoot(); } public void setAdditionalOptions() { - cbPrivateNetworking.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + binding.networkingCheckBox.setOnCheckedChangeListener( + new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { @@ -112,7 +107,8 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { } } }); - cbIpv6.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + binding.ipv6CheckBox.setOnCheckedChangeListener( + new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { @@ -123,7 +119,8 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { } } }); - cbBackups.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + binding.backupsCheckBox.setOnCheckedChangeListener( + new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java index 7227d92..cdde81a 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java @@ -1,17 +1,18 @@ package in.tosc.digitaloceanapp.fragments; - import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.databinding.DataBindingUtil; + import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.DataCenterAdapter; +import in.tosc.digitaloceanapp.databinding.FragmentSelectDataCenterBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Regions; @@ -39,17 +40,18 @@ public DataCenterFragment() { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.fragment_select_data_center, container, false); - final RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.datacenter_recycler); - recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2)); + final FragmentSelectDataCenterBinding binding = DataBindingUtil.inflate( + inflater, R.layout.fragment_select_data_center, container, false); + + binding.datacenterRecycler.setLayoutManager(new GridLayoutManager(getActivity(), 2)); DigitalOceanClient doClient = DigitalOcean.getDOClient(getContext().getSharedPreferences("DO", MODE_PRIVATE).getString("authToken", null)); - recyclerView.setAdapter(dataCenterAdapter); + binding.datacenterRecycler.setAdapter(dataCenterAdapter); doClient.getRegions().enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { Regions regions = response.body(); DataCenterAdapter dataCenterAdapter = new DataCenterAdapter(regions, getActivity()); - recyclerView.setAdapter(dataCenterAdapter); + binding.datacenterRecycler.setAdapter(dataCenterAdapter); dataCenterAdapter.notifyDataSetChanged(); Log.i(TAG, "onResponse: " + regions.getRegions().size() + " Regions Fetched Successfully!"); } @@ -60,7 +62,7 @@ public void onFailure(Call call, Throwable t) { } }); - return view; + return binding.getRoot(); } diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java index c6df02d..d18b167 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java @@ -3,16 +3,17 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.databinding.DataBindingUtil; import java.util.List; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.ImageAdapter; +import in.tosc.digitaloceanapp.databinding.FragmentImageBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Image; @@ -27,7 +28,6 @@ public class SelectImageFragment extends Fragment { public static List imageList; ImageAdapter imageAdapter; - RecyclerView imageRecyclerView; public SelectImageFragment() { @@ -43,18 +43,19 @@ public void onCreate(Bundle savedInstanceState) { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_image, container, false); + final FragmentImageBinding binding = DataBindingUtil.inflate( + inflater, R.layout.fragment_image, container, false); + DigitalOceanClient doClient = DigitalOcean.getDOClient(getContext().getSharedPreferences("DO", MODE_PRIVATE).getString("authToken", null)); - imageRecyclerView = (RecyclerView) view.findViewById(R.id.imageRecyclerVIew); - imageRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3)); - imageRecyclerView.setAdapter(imageAdapter); + binding.imageRecyclerVIew.setLayoutManager(new GridLayoutManager(getContext(), 3)); + binding.imageRecyclerVIew.setAdapter(imageAdapter); doClient.getImages(1, 100, "distribution").enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { imageList = response.body().getImages(); imageAdapter = new ImageAdapter(imageList, getContext()); - imageRecyclerView.setAdapter(imageAdapter); + binding.imageRecyclerVIew.setAdapter(imageAdapter); Log.e("Droplets fetched", String.valueOf(imageList.size())); } @@ -63,6 +64,7 @@ public void onFailure(Call call, Throwable t) { Log.e("Failed getting images", t.getLocalizedMessage()); } }); - return view; + + return binding.getRoot(); } } diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java index 692cf50..1a6aea3 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java @@ -4,16 +4,17 @@ import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.databinding.DataBindingUtil; import java.util.List; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.SelectSizeAdapter; +import in.tosc.digitaloceanapp.databinding.FragmentSizeBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Size; @@ -31,24 +32,23 @@ public class SelectSizeFragment extends Fragment{ private List sizeList; - private RecyclerView recyclerView; private SelectSizeAdapter selectSizeAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_size, container, false); + final FragmentSizeBinding binding = DataBindingUtil.inflate( + inflater, R.layout.fragment_size, container, false); DigitalOceanClient doClient = DigitalOcean.getDOClient(getContext().getSharedPreferences("DO", MODE_PRIVATE).getString("authToken",null)); - recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView_size); - recyclerView.setLayoutManager(new GridLayoutManager(getContext(),1)); - recyclerView.setAdapter(selectSizeAdapter); + binding.recyclerViewSize.setLayoutManager(new GridLayoutManager(getContext(),1)); + binding.recyclerViewSize.setAdapter(selectSizeAdapter); doClient.getSizes().enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { sizeList = response.body().getSizes(); selectSizeAdapter = new SelectSizeAdapter(sizeList, getContext()); - recyclerView.setAdapter(selectSizeAdapter); + binding.recyclerViewSize.setAdapter(selectSizeAdapter); Log.e("Sizes fetched", String.valueOf(sizeList.size())); } @@ -57,7 +57,8 @@ public void onFailure(Call call, Throwable t) { Log.e("Failed getting sizes",t.getLocalizedMessage()); } }); - return view; + + return binding.getRoot(); } } diff --git a/app/src/main/res/layout/fragment_additional_details.xml b/app/src/main/res/layout/fragment_additional_details.xml index 383643c..e636109 100644 --- a/app/src/main/res/layout/fragment_additional_details.xml +++ b/app/src/main/res/layout/fragment_additional_details.xml @@ -1,6 +1,6 @@ + @@ -93,4 +93,5 @@ android:theme="@style/resize" android:layout_alignParentBottom="true" /> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_image.xml b/app/src/main/res/layout/fragment_image.xml index c51dabc..da7e4d1 100644 --- a/app/src/main/res/layout/fragment_image.xml +++ b/app/src/main/res/layout/fragment_image.xml @@ -1,7 +1,8 @@ - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_select_data_center.xml b/app/src/main/res/layout/fragment_select_data_center.xml index 1d4236e..7d8edbf 100644 --- a/app/src/main/res/layout/fragment_select_data_center.xml +++ b/app/src/main/res/layout/fragment_select_data_center.xml @@ -1,6 +1,7 @@ + - \ No newline at end of file + android:id="@+id/datacenter_recycler"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_size.xml b/app/src/main/res/layout/fragment_size.xml index a132fcb..a3dc490 100644 --- a/app/src/main/res/layout/fragment_size.xml +++ b/app/src/main/res/layout/fragment_size.xml @@ -1,9 +1,10 @@ - + - - \ No newline at end of file + + \ No newline at end of file From f19c02e04ad612f6b3469bb9ab9bdfdba83602b7 Mon Sep 17 00:00:00 2001 From: AkshayCHD Date: Fri, 18 May 2018 13:58:24 +0530 Subject: [PATCH 2/2] Add databinding to fragments (#74) --- .../digitaloceanapp/fragments/AdditionalDetailsFragment.java | 3 +-- .../in/tosc/digitaloceanapp/fragments/DataCenterFragment.java | 3 +-- .../tosc/digitaloceanapp/fragments/SelectImageFragment.java | 4 ++-- .../in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java index 7b36bff..2fc84a1 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java @@ -8,9 +8,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; -import android.widget.Toast; - import android.databinding.DataBindingUtil; +import android.widget.Toast; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.activities.DropletCreateActivity; diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java index cdde81a..190be0a 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java @@ -6,9 +6,8 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; - import android.databinding.DataBindingUtil; +import android.view.ViewGroup; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.DataCenterAdapter; diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java index d18b167..96b811b 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java @@ -6,14 +6,14 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import android.databinding.DataBindingUtil; import android.view.ViewGroup; -import android.databinding.DataBindingUtil; +import in.tosc.digitaloceanapp.databinding.FragmentImageBinding; import java.util.List; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.ImageAdapter; -import in.tosc.digitaloceanapp.databinding.FragmentImageBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Image; diff --git a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java index 1a6aea3..29e5442 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java @@ -7,6 +7,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import in.tosc.digitaloceanapp.databinding.FragmentSizeBinding; import android.view.ViewGroup; import android.databinding.DataBindingUtil; @@ -14,7 +15,6 @@ import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.SelectSizeAdapter; -import in.tosc.digitaloceanapp.databinding.FragmentSizeBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.Size;