diff --git a/app/build.gradle b/app/build.gradle index c886763..f68f746 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,6 +39,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + dataBinding { + enabled = true + } } ext { diff --git a/app/src/main/java/in/tosc/digitaloceanapp/activities/DetailDropletActivity.java b/app/src/main/java/in/tosc/digitaloceanapp/activities/DetailDropletActivity.java index cec7d71..a1fa2fe 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/activities/DetailDropletActivity.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/activities/DetailDropletActivity.java @@ -1,5 +1,6 @@ package in.tosc.digitaloceanapp.activities; +import android.databinding.DataBindingUtil; import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; @@ -21,13 +22,13 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.google.gson.Gson; +import in.tosc.digitaloceanapp.databinding.ActivityDetailDropletBinding; + import java.util.List; import in.tosc.digitaloceanapp.R; import in.tosc.digitaloceanapp.adapters.DropletsAdapter; - - import in.tosc.digitaloceanapp.interfaces.OnDropletNameChange; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; @@ -44,11 +45,8 @@ public class DetailDropletActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener { + private ActivityDetailDropletBinding binding; private CoordinatorLayout coordinatorLayout; - private TextView name, memory, size, region, osName, ipAddress; - private Button resize, snapshot; - private EditText snapshotName; - private SwitchCompat switchIPv6, switchPrivateNet, switchBackup; private Droplet droplet; private DigitalOceanClient doaClient; private int position; @@ -59,7 +57,7 @@ public class DetailDropletActivity extends AppCompatActivity implements Compound @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_detail_droplet); + binding = DataBindingUtil.setContentView(this, R.layout.activity_detail_droplet); gson = new Gson(); droplet = gson.fromJson(getIntent().getStringExtra("DROPLET"), Droplet.class); @@ -68,30 +66,15 @@ public void onCreate(Bundle savedInstanceState) { doaClient = DigitalOcean.getDOClient(getSharedPreferences("DO", MODE_PRIVATE).getString("authToken", null)); - coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout); - - name = (TextView) findViewById(R.id.droplet_name); - ipAddress = (TextView) findViewById(R.id.ipAddress); - memory = (TextView) findViewById(R.id.droplet_memory); - size = (TextView) findViewById(R.id.droplet_size); - region = (TextView) findViewById(R.id.droplet_region); - osName = (TextView) findViewById(R.id.droplet_os); - - resize = (Button) findViewById(R.id.resize_droplet); - snapshot = (Button) findViewById(R.id.take_droplet_snapshot); - - snapshotName = (EditText) findViewById(R.id.edittext_snapshot_name); + coordinatorLayout = binding.coordinatorLayout; - switchIPv6 = (SwitchCompat) findViewById(R.id.switch_ipv6); - switchPrivateNet = (SwitchCompat) findViewById(R.id.switch_private_network); - switchBackup = (SwitchCompat) findViewById(R.id.switch_backup); setData(droplet); setIndividualFeatures(droplet); setSwitches(); - switchIPv6.setOnCheckedChangeListener(this); - switchPrivateNet.setOnCheckedChangeListener(this); - switchBackup.setOnCheckedChangeListener(this); + binding.switchIpv6.setOnCheckedChangeListener(this); + binding.switchPrivateNetwork.setOnCheckedChangeListener(this); + binding.switchBackup.setOnCheckedChangeListener(this); } @Override @@ -230,7 +213,7 @@ public void onResponse(Call call, Response response) { DropletActivity.refreshData(); } else { Log.d("IPv6", response.code() + ""); - setSwitchWithoutTriggering(switchIPv6,false); + setSwitchWithoutTriggering(binding.switchIpv6,false); Snackbar.make(coordinatorLayout, getString(R.string.ipv6_couldnt_be_enabled), Snackbar.LENGTH_SHORT).show(); } @@ -238,12 +221,12 @@ public void onResponse(Call call, Response response) { @Override public void onFailure(Call call, Throwable t) { - setSwitchWithoutTriggering(switchIPv6,false); + setSwitchWithoutTriggering(binding.switchIpv6,false); Snackbar.make(coordinatorLayout, getString(R.string.network_error), Snackbar.LENGTH_SHORT).show(); } }); } else { - setSwitchWithoutTriggering(switchIPv6,true); + setSwitchWithoutTriggering(binding.switchIpv6,true); Snackbar.make(coordinatorLayout, getString(R.string.ipv6_cannot_be_disabled), Snackbar.LENGTH_SHORT).show(); } break; @@ -258,19 +241,19 @@ public void onResponse(Call call, Response response) { DropletActivity.refreshData(); } else { Log.d("SPN", response.code() + ""); - setSwitchWithoutTriggering(switchPrivateNet,false); + setSwitchWithoutTriggering(binding.switchPrivateNetwork,false); Snackbar.make(coordinatorLayout, getString(R.string.private_network_couldnt_be_enabled), Snackbar.LENGTH_SHORT).show(); } } @Override public void onFailure(Call call, Throwable t) { - setSwitchWithoutTriggering(switchPrivateNet,false); + setSwitchWithoutTriggering(binding.switchPrivateNetwork,false); Snackbar.make(coordinatorLayout, getString(R.string.network_error), Snackbar.LENGTH_SHORT).show(); } }); } else { - setSwitchWithoutTriggering(switchPrivateNet,true); + setSwitchWithoutTriggering(binding.switchPrivateNetwork,true); Snackbar.make(coordinatorLayout, getString(R.string.private_network_cannot_be_disabled), Snackbar.LENGTH_SHORT).show(); } break; @@ -284,7 +267,7 @@ public void onResponse(Call call, Response response) { Snackbar.make(coordinatorLayout, getString(R.string.backup_enabled), Snackbar.LENGTH_SHORT).show(); DropletActivity.refreshData(); } else { - setSwitchWithoutTriggering(switchBackup,false); + setSwitchWithoutTriggering(binding.switchBackup,false); Snackbar.make(coordinatorLayout, getString(R.string.backup_couldnt_be_enabled), Snackbar.LENGTH_SHORT).show(); Log.d("SBE", response.code() + ""); } @@ -292,7 +275,7 @@ public void onResponse(Call call, Response response) { @Override public void onFailure(Call call, Throwable t) { - setSwitchWithoutTriggering(switchBackup,false); + setSwitchWithoutTriggering(binding.switchBackup,false); Snackbar.make(coordinatorLayout, getString(R.string.network_error), Snackbar.LENGTH_SHORT).show(); } }); @@ -305,7 +288,7 @@ public void onResponse(Call call, Response response) { DropletActivity.refreshData(); } else { Log.d("SBD", response.code() + ""); - setSwitchWithoutTriggering(switchBackup,true); + setSwitchWithoutTriggering(binding.switchBackup,true); Snackbar.make(coordinatorLayout, getString(R.string.backup_couldnt_be_disabled), Snackbar.LENGTH_SHORT).show(); } @@ -313,7 +296,7 @@ public void onResponse(Call call, Response response) { @Override public void onFailure(Call call, Throwable t) { - setSwitchWithoutTriggering(switchBackup,true); + setSwitchWithoutTriggering(binding.switchBackup,true); Snackbar.make(coordinatorLayout, getString(R.string.network_error), Snackbar.LENGTH_SHORT).show(); } }); @@ -326,12 +309,17 @@ public void onFailure(Call call, Throwable t) { } private void setData(Droplet droplet) { - name.setText(droplet.getName()); - ipAddress.setText(droplet.getNetworks().getVersion4Networks().get(0).getIpAddress()); - memory.setText(String.format(getResources().getString(R.string.droplet_memory), String.valueOf(droplet.getMemorySizeInMb()))); - size.setText(String.format(getResources().getString(R.string.droplet_disk_size), String.valueOf(droplet.getDiskSize()))); - region.setText(droplet.getRegion().getName()); - osName.setText(droplet.getImage().getName()); + binding.dropletName.setText(droplet.getName()); + binding.ipAddress.setText( + droplet.getNetworks().getVersion4Networks().get(0).getIpAddress()); + binding.dropletMemory.setText( + String.format(getResources().getString(R.string.droplet_memory), + String.valueOf(droplet.getMemorySizeInMb()))); + binding.dropletSize.setText( + String.format(getResources().getString(R.string.droplet_disk_size), + String.valueOf(droplet.getDiskSize()))); + binding.dropletRegion.setText(droplet.getRegion().getName()); + binding.dropletOs.setText(droplet.getImage().getName()); } private void setSwitches() { @@ -339,9 +327,9 @@ private void setSwitches() { boolean isPrivateNetworkEnabled = droplet.getEnablePrivateNetworking() == null ? false : droplet.getEnablePrivateNetworking(); boolean isBackupEnabled = droplet.getEnableBackup() == null ? false : droplet.getEnableBackup(); - switchIPv6.setChecked(isIPv6Enabled); - switchPrivateNet.setChecked(isPrivateNetworkEnabled); - switchBackup.setChecked(isBackupEnabled); + binding.switchIpv6.setChecked(isIPv6Enabled); + binding.switchPrivateNetwork.setChecked(isPrivateNetworkEnabled); + binding.switchBackup.setChecked(isBackupEnabled); } private void setSwitchWithoutTriggering(SwitchCompat switchCompat,boolean newState) diff --git a/app/src/main/java/in/tosc/digitaloceanapp/activities/DropletCreateActivity.java b/app/src/main/java/in/tosc/digitaloceanapp/activities/DropletCreateActivity.java index 6f8d44b..142e7f0 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/activities/DropletCreateActivity.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/activities/DropletCreateActivity.java @@ -1,5 +1,6 @@ package in.tosc.digitaloceanapp.activities; +import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v7.app.AppCompatActivity; @@ -9,6 +10,7 @@ import android.widget.Toast; import in.tosc.digitaloceanapp.R; +import in.tosc.digitaloceanapp.databinding.ActivityDropletCreateBinding; import in.tosc.digitaloceanapp.fragments.AdditionalDetailsFragment; import in.tosc.digitaloceanapp.fragments.DataCenterFragment; import in.tosc.digitaloceanapp.fragments.SelectImageFragment; @@ -23,11 +25,8 @@ public class DropletCreateActivity extends AppCompatActivity { static Droplet droplet; int count = 1; - Button btnNext; - Button btnPrev; - Button btnCreateDropet; private static final String TAG = "DropletCreateActivity"; - + private ActivityDropletCreateBinding binding; public static Droplet getDroplet() { return droplet; @@ -36,11 +35,9 @@ public static Droplet getDroplet() { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + binding = DataBindingUtil.setContentView(this, R.layout.activity_droplet_create); + droplet = new Droplet(); - setContentView(R.layout.activity_droplet_create); - btnNext = (Button) findViewById(R.id.buttonNext); - btnPrev = (Button) findViewById(R.id.buttonPrev); - btnCreateDropet = (Button) findViewById(R.id.btnCreateDroplet); } private void removeFragment(int count) { @@ -52,7 +49,7 @@ private void removeFragment(int count) { break; case 3: fragmentManager.popBackStack("selectSizeFragment", FragmentManager.POP_BACK_STACK_INCLUSIVE); - btnNext.setVisibility(View.VISIBLE); + binding.buttonNext.setVisibility(View.VISIBLE); break; case 2: fragmentManager.popBackStack("DataCenterFragment", FragmentManager.POP_BACK_STACK_INCLUSIVE); @@ -74,22 +71,25 @@ private void addFragment(int count) { case 2: DataCenterFragment selectDataCenter = new DataCenterFragment(); - fragmentTransaction.replace(R.id.fragmentHolder, selectDataCenter, "DATA_CENTER"); + fragmentTransaction.replace(binding.fragmentHolder.getId(), + selectDataCenter, "DATA_CENTER"); fragmentTransaction.addToBackStack("DataCenterFragment"); fragmentTransaction.commit(); break; case 3: SelectSizeFragment selectSizeFragment = new SelectSizeFragment(); - fragmentTransaction.replace(R.id.fragmentHolder, selectSizeFragment, "SELECT_SIZE"); + fragmentTransaction.replace(binding.fragmentHolder.getId(), selectSizeFragment, + "SELECT_SIZE"); fragmentTransaction.addToBackStack("selectSizeFragment"); fragmentTransaction.commit(); break; case 4: AdditionalDetailsFragment additionalDetailsFragment = new AdditionalDetailsFragment(); - fragmentTransaction.replace(R.id.fragmentHolder, additionalDetailsFragment, "ADDITIONAL_DETAILS"); + fragmentTransaction.replace(binding.fragmentHolder.getId(), + additionalDetailsFragment, "ADDITIONAL_DETAILS"); fragmentTransaction.addToBackStack("additionalDetailsFragment"); fragmentTransaction.commit(); - btnNext.setVisibility(View.GONE); + binding.buttonNext.setVisibility(View.GONE); break; // case 5: // createDroplet(droplet); @@ -112,7 +112,8 @@ protected void onResume() { FragmentManager fragmentManager = getSupportFragmentManager(); android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); SelectImageFragment selectImageFragment = new SelectImageFragment(); - fragmentTransaction.replace(R.id.fragmentHolder, selectImageFragment, "CREATE_DROPLET"); + fragmentTransaction.replace(binding.fragmentHolder.getId(), + selectImageFragment, "CREATE_DROPLET"); fragmentTransaction.addToBackStack("additionalDetailsFragment"); fragmentTransaction.commit(); } diff --git a/app/src/main/java/in/tosc/digitaloceanapp/activities/SplashActivity.java b/app/src/main/java/in/tosc/digitaloceanapp/activities/SplashActivity.java index f779801..4cb84f2 100644 --- a/app/src/main/java/in/tosc/digitaloceanapp/activities/SplashActivity.java +++ b/app/src/main/java/in/tosc/digitaloceanapp/activities/SplashActivity.java @@ -2,6 +2,7 @@ import android.app.ProgressDialog; import android.content.Intent; +import android.databinding.DataBindingUtil; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AlertDialog; @@ -12,6 +13,7 @@ import android.widget.EditText; import in.tosc.digitaloceanapp.R; +import in.tosc.digitaloceanapp.databinding.ActivitySplashBinding; import in.tosc.doandroidlib.DigitalOcean; import in.tosc.doandroidlib.api.DigitalOceanClient; import in.tosc.doandroidlib.objects.AccountInfo; @@ -23,9 +25,6 @@ public class SplashActivity extends AppCompatActivity { public static final String TAG = "Splash"; - - Button loginButton, signupButton; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -36,7 +35,9 @@ protected void onCreate(Bundle savedInstanceState) { progressFurther(); } - setContentView(R.layout.activity_splash); + ActivitySplashBinding binding + = DataBindingUtil.setContentView(this, R.layout.activity_splash); + getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE @@ -46,11 +47,8 @@ protected void onCreate(Bundle savedInstanceState) { | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - loginButton = (Button) findViewById(R.id.btnLogin); - signupButton = (Button) findViewById(R.id.btnSignup); - final EditText tokenEditText = (EditText) findViewById(R.id.etToken); - loginButton.setOnClickListener(new View.OnClickListener() { + binding.btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String token = tokenEditText.getText().toString(); @@ -62,7 +60,7 @@ public void onClick(View v) { } }); - signupButton.setOnClickListener(new View.OnClickListener() { + binding.btnSignup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW); diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index d0e49a7..a84e485 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -1,5 +1,6 @@ - + - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail_droplet.xml b/app/src/main/res/layout/activity_detail_droplet.xml index 35ff3dd..f4c1900 100644 --- a/app/src/main/res/layout/activity_detail_droplet.xml +++ b/app/src/main/res/layout/activity_detail_droplet.xml @@ -1,6 +1,6 @@ + @@ -214,4 +214,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_droplet_create.xml b/app/src/main/res/layout/activity_droplet_create.xml index a2542bf..4de3ce7 100644 --- a/app/src/main/res/layout/activity_droplet_create.xml +++ b/app/src/main/res/layout/activity_droplet_create.xml @@ -1,5 +1,5 @@ - + @@ -49,3 +49,4 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 03d3bc7..f5081fd 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ - + + \ No newline at end of file