├── .gitignore ├── License ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── fonts │ │ └── ProximaNova.ttf │ ├── ic_launcher-web.png │ ├── java │ └── in │ │ └── tosc │ │ └── digitaloceanapp │ │ ├── DOApp.java │ │ ├── activities │ │ ├── DetailDropletActivity.java │ │ ├── DropletActivity.java │ │ ├── DropletCreateActivity.java │ │ ├── SampleActivity.java │ │ └── SplashActivity.java │ │ ├── adapters │ │ ├── DataCenterAdapter.java │ │ ├── DropletsAdapter.java │ │ ├── ImageAdapter.java │ │ └── SelectSizeAdapter.java │ │ ├── fragments │ │ ├── AdditionalDetailsFragment.java │ │ ├── DataCenterFragment.java │ │ ├── SelectImageFragment.java │ │ └── SelectSizeFragment.java │ │ ├── models │ │ ├── Datacenter.java │ │ └── ServerSize.java │ │ └── utils │ │ └── FontsOverride.java │ └── res │ ├── drawable-hdpi │ ├── digital_ocean_logo.png │ ├── ic_account_circle_black_24dp.png │ ├── ic_add_white_24dp.png │ ├── ic_create_droplet.png │ ├── ic_delete_white_24dp.png │ ├── ic_directions_run_black_24dp.png │ ├── ic_info_outline_black_24dp.png │ ├── ic_menu_share.png │ ├── ic_mode_edit_white_24dp.png │ ├── ic_payment_black_24dp.png │ ├── ic_power_settings_new_white_24dp.png │ ├── ic_settings_black_24dp.png │ └── ic_vpn_key_black_24dp.png │ ├── drawable-mdpi │ ├── ic_account_circle_black_24dp.png │ ├── ic_add_white_24dp.png │ ├── ic_create_droplet.png │ ├── ic_delete_white_24dp.png │ ├── ic_directions_run_black_24dp.png │ ├── ic_info_outline_black_24dp.png │ ├── ic_menu_share.png │ ├── ic_mode_edit_white_24dp.png │ ├── ic_payment_black_24dp.png │ ├── ic_power_settings_new_white_24dp.png │ ├── ic_settings_black_24dp.png │ └── ic_vpn_key_black_24dp.png │ ├── drawable-v21 │ ├── ic_menu_camera.xml │ ├── ic_menu_gallery.xml │ ├── ic_menu_manage.xml │ ├── ic_menu_send.xml │ ├── ic_menu_share.xml │ └── ic_menu_slideshow.xml │ ├── drawable-xhdpi │ ├── ic_account_circle_black_24dp.png │ ├── ic_add_white_24dp.png │ ├── ic_create_droplet.png │ ├── ic_delete_white_24dp.png │ ├── ic_directions_run_black_24dp.png │ ├── ic_info_outline_black_24dp.png │ ├── ic_menu_share.png │ ├── ic_mode_edit_white_24dp.png │ ├── ic_payment_black_24dp.png │ ├── ic_power_settings_new_white_24dp.png │ ├── ic_settings_black_24dp.png │ └── ic_vpn_key_black_24dp.png │ ├── drawable-xxhdpi │ ├── ic_account_circle_black_24dp.png │ ├── ic_add_white_24dp.png │ ├── ic_create_droplet.png │ ├── ic_delete_white_24dp.png │ ├── ic_directions_run_black_24dp.png │ ├── ic_info_outline_black_24dp.png │ ├── ic_menu_share.png │ ├── ic_mode_edit_white_24dp.png │ ├── ic_payment_black_24dp.png │ ├── ic_power_settings_new_white_24dp.png │ ├── ic_settings_black_24dp.png │ └── ic_vpn_key_black_24dp.png │ ├── drawable-xxxhdpi │ ├── ic_account_circle_black_24dp.png │ ├── ic_add_white_24dp.png │ ├── ic_delete_white_24dp.png │ ├── ic_directions_run_black_24dp.png │ ├── ic_info_outline_black_24dp.png │ ├── ic_menu_share.png │ ├── ic_mode_edit_white_24dp.png │ ├── ic_payment_black_24dp.png │ ├── ic_power_settings_new_white_24dp.png │ ├── ic_settings_black_24dp.png │ └── ic_vpn_key_black_24dp.png │ ├── drawable │ ├── amsterdam.png │ ├── canada.png │ ├── centos.png │ ├── centos_selected.png │ ├── coreos.png │ ├── coreos_selected.png │ ├── debian.png │ ├── debian_selected.png │ ├── fedora.png │ ├── fedora_selected.png │ ├── frankfurt.png │ ├── freebsd.png │ ├── freebsd_selected.png │ ├── ic_digitalocean.png │ ├── ic_droplet.png │ ├── ic_droplet_copy.png │ ├── india.png │ ├── london.png │ ├── murrica.png │ ├── selector.xml │ ├── side_nav_bar.xml │ ├── singapore.png │ ├── ubuntu.png │ └── ubuntu_selected.png │ ├── layout │ ├── activity_detail_droplet.xml │ ├── activity_droplet.xml │ ├── activity_droplet_create.xml │ ├── activity_main.xml │ ├── activity_splash.xml │ ├── app_bar_droplet.xml │ ├── content_droplet.xml │ ├── fragment_image.xml │ ├── fragment_select_data_center.xml │ ├── fragment_size.xml │ ├── list_item_size.xml │ ├── nav_header_droplet.xml │ ├── single_coutry.xml │ ├── single_droplet.xml │ └── single_image_list.xml │ ├── menu │ ├── activity_droplet_drawer.xml │ ├── detail_droplet.xml │ └── droplet.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── mipmap-xxxhdpi │ └── ic_launcher.png │ ├── values-v21 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── drawables.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── doandroidlib ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── in │ │ └── tosc │ │ └── doandroidlib │ │ ├── DigitalOcean.java │ │ ├── api │ │ ├── DOLoginActivity.java │ │ ├── DigitalOceanClient.java │ │ └── DigitalOceanStatisticsClient.java │ │ ├── common │ │ ├── ActionStatus.java │ │ ├── ActionType.java │ │ ├── ApiAction.java │ │ ├── DropletStatus.java │ │ ├── ImageType.java │ │ ├── PeriodType.java │ │ ├── RequestMethod.java │ │ ├── ResourceType.java │ │ └── StatisticsType.java │ │ ├── objects │ │ ├── Account.java │ │ ├── Action.java │ │ ├── Actions.java │ │ ├── Backup.java │ │ ├── Backups.java │ │ ├── Base.java │ │ ├── Delete.java │ │ ├── Domain.java │ │ ├── DomainRecord.java │ │ ├── DomainRecords.java │ │ ├── Domains.java │ │ ├── Droplet.java │ │ ├── DropletAction.java │ │ ├── Droplets.java │ │ ├── FloatingIP.java │ │ ├── FloatingIPAction.java │ │ ├── FloatingIPs.java │ │ ├── Image.java │ │ ├── ImageAction.java │ │ ├── Images.java │ │ ├── Kernel.java │ │ ├── Kernels.java │ │ ├── Key.java │ │ ├── Keys.java │ │ ├── LinkAction.java │ │ ├── Links.java │ │ ├── Meta.java │ │ ├── Neighbors.java │ │ ├── Network.java │ │ ├── Networks.java │ │ ├── Pages.java │ │ ├── RateLimit.java │ │ ├── RateLimitBase.java │ │ ├── Region.java │ │ ├── Regions.java │ │ ├── Resource.java │ │ ├── Resources.java │ │ ├── Response.java │ │ ├── Size.java │ │ ├── Sizes.java │ │ ├── Snapshot.java │ │ ├── Snapshots.java │ │ ├── Statistics.java │ │ ├── StatisticsData.java │ │ ├── StatisticsDataSet.java │ │ ├── Tag.java │ │ ├── TagDropletResource.java │ │ ├── TagResource.java │ │ ├── Tags.java │ │ ├── Volume.java │ │ ├── VolumeAction.java │ │ └── Volumes.java │ │ └── serializer │ │ ├── DropletSerializer.java │ │ ├── ListDeserializer.java │ │ ├── ObjectDeserializer.java │ │ └── VolumeSerializer.java │ └── res │ ├── layout │ └── activity_dologin.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ └── strings.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | .idea/workspace.xml 11 | .idea/tasks.xml 12 | .idea/dictionaries 13 | .idea/vcs.xml 14 | .idea/jsLibraryMappings.xml 15 | .idea/dataSources.ids 16 | .idea/dataSources.xml 17 | .idea/dataSources.local.xml 18 | .idea/sqlDataSources.xml 19 | .idea/dynamic.xml 20 | .idea/uiDesigner.xml 21 | .idea/gradle.xml 22 | .idea/libraries 23 | .idea/mongoSettings.xml 24 | *.iws 25 | /out/ 26 | .idea_modules/ 27 | atlassian-ide-plugin.xml 28 | com_crashlytics_export_strings.xml 29 | crashlytics.properties 30 | crashlytics-build.properties 31 | fabric.properties 32 | *.apk 33 | *.ap_ 34 | *.dex 35 | *.class 36 | bin/ 37 | gen/ 38 | out/ 39 | .gradle/ 40 | build/ 41 | local.properties 42 | proguard/ 43 | *.log 44 | .navigation/ 45 | captures/ 46 | *.iml 47 | .idea/workspace.xml 48 | *.jks 49 | /.idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DigitalOceanApp 2 | Android App and Android Library for accessing the DigitalOcean API. 3 | Made as a part of DigitalOcean CloudHackathon. 4 | 5 | The library provides easy to use Java methods to make API calls to DigitalOcean. 6 | 7 | The Android App lets people sign in with their Digital Ocean account. 8 | Once signed in, you can see your droplets, and their status. 9 | It has features such as - 10 | - powering off / rebooting your droplet 11 | - turning backups on/off 12 | - taking snapshot of droplet 13 | - resizing droplet 14 | - creating a droplet 15 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion "25.0.1" 6 | defaultConfig { 7 | applicationId "in.tosc.digitaloceanapp" 8 | minSdkVersion 16 9 | targetSdkVersion 25 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | useLibrary 'org.apache.http.legacy' 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 19 | } 20 | } 21 | } 22 | 23 | dependencies { 24 | compile fileTree(dir: 'libs', include: ['*.jar']) 25 | compile 'com.android.support:appcompat-v7:25.0.1' 26 | compile 'com.android.support:design:25.0.1' 27 | compile 'com.android.support:support-v4:25.0.1' 28 | compile 'com.android.support:cardview-v7:25.0.1' 29 | compile 'com.squareup.picasso:picasso:2.5.2' 30 | compile 'de.hdodenhof:circleimageview:2.1.0' 31 | compile 'com.android.support:customtabs:25.0.0' 32 | compile 'com.afollestad.material-dialogs:core:0.9.1.0' 33 | compile project(path: ':doandroidlib') 34 | } 35 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/championswimmer/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 38 | 41 | 42 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/assets/fonts/ProximaNova.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/assets/fonts/ProximaNova.ttf -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/DOApp.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp; 2 | 3 | import android.app.Application; 4 | 5 | import in.tosc.digitaloceanapp.utils.FontsOverride; 6 | import in.tosc.doandroidlib.DigitalOcean; 7 | 8 | /** 9 | * Created by championswimmer on 26/11/16. 10 | */ 11 | 12 | public class DOApp extends Application { 13 | @Override 14 | public void onCreate() { 15 | super.onCreate(); 16 | // FontsOverride.setDefaultFont(this, "DEFAULT", "MyFontAsset.ttf"); 17 | // FontsOverride.setDefaultFont(this, "MONOSPACE", "MyFontAsset2.ttf"); 18 | // FontsOverride.setDefaultFont(this, "SERIF", "fonts/ProximaNova.ttf"); 19 | FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/" + FontsOverride.FONT_PROXIMA_NOVA); 20 | DigitalOcean.init(getString(R.string.do_client_id), getString(R.string.do_callback_url)); 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/activities/SampleActivity.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.activities; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.util.Log; 6 | 7 | import java.util.List; 8 | 9 | import in.tosc.digitaloceanapp.R; 10 | import in.tosc.digitaloceanapp.utils.FontsOverride; 11 | import in.tosc.doandroidlib.DigitalOcean; 12 | import in.tosc.doandroidlib.api.DigitalOceanClient; 13 | import in.tosc.doandroidlib.api.DigitalOceanStatisticsClient; 14 | import in.tosc.doandroidlib.objects.Account; 15 | import in.tosc.doandroidlib.objects.Droplet; 16 | import retrofit2.Call; 17 | import retrofit2.Callback; 18 | import retrofit2.Response; 19 | 20 | public class SampleActivity extends AppCompatActivity { 21 | 22 | public static final String TAG = "DO"; 23 | 24 | @Override 25 | protected void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | setContentView(R.layout.activity_main); 28 | 29 | FontsOverride.applyFontForToolbarTitle(this, "ProximaNova.ttf"); 30 | 31 | DigitalOceanClient doClient = DigitalOcean.getDOClient(getSharedPreferences("DO", MODE_PRIVATE).getString("authToken",null)); 32 | final DigitalOceanStatisticsClient statClient = DigitalOcean.getDOStatsClient(getSharedPreferences("DO", MODE_PRIVATE).getString("authToken",null)); 33 | 34 | 35 | 36 | doClient.getDroplets(1, 10).enqueue(new Callback>() { 37 | @Override 38 | public void onResponse(Call> call, Response> response) { 39 | Log.d(TAG, "onResponse: droplet 0 = " + response.raw().toString()); 40 | Log.d(TAG, "onResponse: droplet 0 = " + response.body().get(0).getName()); 41 | 42 | } 43 | 44 | @Override 45 | public void onFailure(Call> call, Throwable t) { 46 | Log.e(TAG, "onFailure: ", t); 47 | } 48 | }); 49 | 50 | doClient.getAccount().enqueue(new Callback() { 51 | @Override 52 | public void onResponse(Call call, Response response) { 53 | Log.d(TAG, "onResponse: email = " + response.body().getEmail()); 54 | } 55 | 56 | @Override 57 | public void onFailure(Call call, Throwable t) { 58 | Log.e(TAG, "onFailure: ", t); 59 | 60 | } 61 | }); 62 | 63 | // statClient.getStats(10222412, StatisticsType.BANDWIDTH, PeriodType.HOUR) 64 | // .enqueue(new Callback() { 65 | // @Override 66 | // public void onResponse(Call call, Response response) { 67 | // Log.d(TAG, "onResponse: " + response.raw().toString()); 68 | // Log.d(TAG, "onResponse: " + response.body().getStatistics().get(0).getData().size()); 69 | // Log.d(TAG, "onResponse: " + response.body().getStatistics().get(1).getData().size()); 70 | // } 71 | // 72 | // @Override 73 | // public void onFailure(Call call, Throwable t) { 74 | // 75 | // } 76 | // }); 77 | 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/activities/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.activities; 2 | 3 | import android.content.Intent; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.os.Bundle; 6 | import android.util.Log; 7 | import android.view.View; 8 | import android.widget.Button; 9 | 10 | import in.tosc.digitaloceanapp.R; 11 | import in.tosc.doandroidlib.DigitalOcean; 12 | 13 | public class SplashActivity extends AppCompatActivity { 14 | 15 | public static final String TAG = "Splash"; 16 | 17 | Button loginButton, signupButton; 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | 23 | if (!getSharedPreferences("DO", MODE_PRIVATE).getString("authToken", "").isEmpty()) { 24 | progressFurther(); 25 | } 26 | 27 | setContentView(R.layout.activity_splash); 28 | 29 | getWindow().getDecorView().setSystemUiVisibility( 30 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 31 | | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 32 | | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 33 | | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 34 | | View.SYSTEM_UI_FLAG_FULLSCREEN 35 | | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 36 | 37 | loginButton = (Button) findViewById(R.id.btnLogin); 38 | 39 | loginButton.setOnClickListener(new View.OnClickListener() { 40 | @Override 41 | public void onClick(View v) { 42 | DigitalOcean.doLogin(SplashActivity.this); 43 | } 44 | }); 45 | 46 | 47 | } 48 | 49 | @Override 50 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { 51 | 52 | if (resultCode == DigitalOcean.LOGIN_SUCCESS) { 53 | Log.d(TAG, "onActivityResult: " + "LOGIN SUCCESS" + data.getStringExtra("authToken")); 54 | DigitalOcean.onLoggedIn(data.getStringExtra("authToken")); 55 | getSharedPreferences("DO", MODE_PRIVATE).edit() 56 | .putString("authToken", data.getStringExtra("authToken")) 57 | .apply(); 58 | progressFurther(); 59 | } 60 | 61 | super.onActivityResult(requestCode, resultCode, data); 62 | } 63 | 64 | public void progressFurther () { 65 | Intent i = new Intent(this, DropletActivity.class); 66 | startActivity(i); 67 | finish(); 68 | 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/adapters/DataCenterAdapter.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.adapters; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import com.squareup.picasso.Picasso; 12 | 13 | import java.util.ArrayList; 14 | 15 | import in.tosc.digitaloceanapp.R; 16 | import in.tosc.digitaloceanapp.models.Datacenter; 17 | 18 | /** 19 | * Created by rishabhkhanna on 27/11/16. 20 | */ 21 | 22 | public class DataCenterAdapter extends RecyclerView.Adapter { 23 | 24 | private ArrayList countriesList; 25 | private Context context; 26 | private int postion; 27 | 28 | public DataCenterAdapter(ArrayList countries , Context context) { 29 | countriesList = countries; 30 | this.context = context; 31 | } 32 | 33 | @Override 34 | public DataCenterViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 35 | View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_coutry , parent , false); 36 | return new DataCenterViewHolder(itemView); 37 | } 38 | 39 | @Override 40 | public void onBindViewHolder(DataCenterViewHolder holder, int position) { 41 | this.postion = holder.getAdapterPosition(); 42 | String thisCountry = countriesList.get(position).getCity(); 43 | int url = countriesList.get(position).getId(); 44 | 45 | holder.countryName.setText(thisCountry); 46 | Picasso.with(context).load(url).resize(425,220).into(holder.img); 47 | 48 | } 49 | 50 | @Override 51 | public int getItemCount() { 52 | return countriesList.size(); 53 | } 54 | 55 | class DataCenterViewHolder extends RecyclerView.ViewHolder{ 56 | 57 | TextView countryName; 58 | ImageView img; 59 | 60 | public DataCenterViewHolder(View itemView) { 61 | super(itemView); 62 | countryName = (TextView) itemView.findViewById(R.id.countryName); 63 | img = (ImageView) itemView.findViewById(R.id.country_url); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/adapters/SelectSizeAdapter.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.adapters; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.TextView; 9 | 10 | import java.util.List; 11 | 12 | import in.tosc.digitaloceanapp.R; 13 | import in.tosc.doandroidlib.objects.Size; 14 | 15 | /** 16 | * Created by the-dagger on 11/27/2016. 17 | */ 18 | 19 | public class SelectSizeAdapter extends RecyclerView.Adapter implements View.OnClickListener { 20 | 21 | List sizeList; 22 | Context context; 23 | 24 | public SelectSizeAdapter(List sizeList, Context context){ 25 | this.sizeList = sizeList; 26 | this.context = context; 27 | } 28 | 29 | @Override 30 | public SelectSizeAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 31 | View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_size,parent,false); 32 | itemView.setOnClickListener(this); 33 | return new SelectSizeAdapter.ViewHolder(itemView); 34 | } 35 | 36 | @Override 37 | public void onBindViewHolder(SelectSizeAdapter.ViewHolder holder, int position) { 38 | 39 | holder.monthlyPrice.setText(String.format(context.getString(R.string.monthly_price), sizeList.get(position).getPriceMonthly().toString())); 40 | holder.hourlyPrice.setText(String.format(context.getString(R.string.hourly_price), sizeList.get(position).getPriceHourly().toString())); 41 | holder.memory.setText(String.format(context.getString(R.string.memory), sizeList.get(position).getMemorySizeInMb().toString(), sizeList.get(position).getVirutalCpuCount().toString())); 42 | holder.diskSpace.setText(String.format(context.getString(R.string.disk_space), sizeList.get(position).getDiskSize().toString())); 43 | holder.transfer.setText(String.format(context.getString(R.string.transfer), sizeList.get(position).getTransfer().toString())); 44 | } 45 | 46 | @Override 47 | public int getItemCount() { 48 | return sizeList.size(); 49 | } 50 | 51 | @Override 52 | public void onClick(View v) { 53 | 54 | } 55 | 56 | public class ViewHolder extends RecyclerView.ViewHolder { 57 | 58 | TextView monthlyPrice, hourlyPrice, memory, diskSpace, transfer; 59 | View view; 60 | public ViewHolder(View itemView) { 61 | super(itemView); 62 | view = itemView; 63 | monthlyPrice = (TextView) itemView.findViewById(R.id.monthly_price); 64 | hourlyPrice = (TextView) itemView.findViewById(R.id.hourly_price); 65 | memory = (TextView) itemView.findViewById(R.id.memory_space); 66 | diskSpace = (TextView) itemView.findViewById(R.id.disk_space); 67 | transfer = (TextView) itemView.findViewById(R.id.transfer); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/fragments/AdditionalDetailsFragment.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.fragments; 2 | 3 | import android.support.v4.app.Fragment; 4 | 5 | /** 6 | * Created by harsh on 11/27/2016. 7 | */ 8 | 9 | public class AdditionalDetailsFragment extends Fragment { 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/fragments/DataCenterFragment.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.fragments; 2 | 3 | 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v7.widget.GridLayoutManager; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import java.util.ArrayList; 13 | 14 | import in.tosc.digitaloceanapp.R; 15 | import in.tosc.digitaloceanapp.adapters.DataCenterAdapter; 16 | import in.tosc.digitaloceanapp.models.Datacenter; 17 | 18 | /** 19 | * A simple {@link Fragment} subclass. 20 | */ 21 | public class DataCenterFragment extends Fragment { 22 | 23 | 24 | public DataCenterFragment() { 25 | // Required empty public constructor 26 | } 27 | 28 | 29 | @Override 30 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 31 | Bundle savedInstanceState) { 32 | // Inflate the layout for this fragment 33 | ArrayList countries = Datacenter.getCenter(); 34 | View view = inflater.inflate(R.layout.fragment_select_data_center, container, false); 35 | RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.datacenter_recycler); 36 | recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2)); 37 | DataCenterAdapter dataCenterAdapter = new DataCenterAdapter(countries , getActivity()); 38 | recyclerView.setAdapter(dataCenterAdapter); 39 | dataCenterAdapter.notifyDataSetChanged(); 40 | return view; 41 | } 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectImageFragment.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.fragments; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v7.widget.GridLayoutManager; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.util.Log; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import java.util.List; 13 | 14 | import in.tosc.digitaloceanapp.R; 15 | import in.tosc.digitaloceanapp.adapters.ImageAdapter; 16 | import in.tosc.doandroidlib.DigitalOcean; 17 | import in.tosc.doandroidlib.api.DigitalOceanClient; 18 | import in.tosc.doandroidlib.objects.Image; 19 | import retrofit2.Call; 20 | import retrofit2.Callback; 21 | import retrofit2.Response; 22 | 23 | import static android.content.Context.MODE_PRIVATE; 24 | 25 | public class SelectImageFragment extends Fragment { 26 | 27 | List imageList; 28 | ImageAdapter imageAdapter; 29 | RecyclerView imageRecyclerView; 30 | 31 | public SelectImageFragment() { 32 | } 33 | 34 | @Override 35 | public void onCreate(Bundle savedInstanceState) { 36 | super.onCreate(savedInstanceState); 37 | } 38 | 39 | @Override 40 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 41 | Bundle savedInstanceState) { 42 | View view = inflater.inflate(R.layout.fragment_image, container, false); 43 | DigitalOceanClient doClient = DigitalOcean.getDOClient(getContext().getSharedPreferences("DO", MODE_PRIVATE).getString("authToken",null)); 44 | imageRecyclerView = (RecyclerView) view.findViewById(R.id.imageRecyclerVIew); 45 | imageRecyclerView.setLayoutManager(new GridLayoutManager(getContext(),3)); 46 | imageRecyclerView.setAdapter(imageAdapter); 47 | doClient.getImages(1,100,"distribution").enqueue(new Callback>() { 48 | @Override 49 | public void onResponse(Call> call, Response> response) { 50 | imageList = response.body(); 51 | imageAdapter = new ImageAdapter(imageList,getContext()); 52 | imageRecyclerView.setAdapter(imageAdapter); 53 | Log.e("Droplets fetched", String.valueOf(imageList.size())); 54 | } 55 | 56 | @Override 57 | public void onFailure(Call> call, Throwable t) { 58 | Log.e("Failed getting images",t.getLocalizedMessage()); 59 | } 60 | }); 61 | return view; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/fragments/SelectSizeFragment.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.fragments; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v7.widget.GridLayoutManager; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.util.Log; 9 | import android.view.LayoutInflater; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | 13 | import java.util.List; 14 | 15 | import in.tosc.digitaloceanapp.R; 16 | import in.tosc.digitaloceanapp.adapters.SelectSizeAdapter; 17 | import in.tosc.doandroidlib.DigitalOcean; 18 | import in.tosc.doandroidlib.api.DigitalOceanClient; 19 | import in.tosc.doandroidlib.objects.Size; 20 | import retrofit2.Call; 21 | import retrofit2.Callback; 22 | import retrofit2.Response; 23 | 24 | import static android.content.Context.MODE_PRIVATE; 25 | 26 | /** 27 | * Created by the-dagger on 11/26/2016. 28 | */ 29 | 30 | public class SelectSizeFragment extends Fragment{ 31 | 32 | private List sizeList; 33 | private RecyclerView recyclerView; 34 | private SelectSizeAdapter selectSizeAdapter; 35 | 36 | @Nullable 37 | @Override 38 | public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { 39 | View view = inflater.inflate(R.layout.fragment_size, container, false); 40 | 41 | DigitalOceanClient doClient = DigitalOcean.getDOClient(getContext().getSharedPreferences("DO", MODE_PRIVATE).getString("authToken",null)); 42 | recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView_size); 43 | recyclerView.setLayoutManager(new GridLayoutManager(getContext(),1)); 44 | recyclerView.setAdapter(selectSizeAdapter); 45 | doClient.getSizes().enqueue(new Callback>() { 46 | @Override 47 | public void onResponse(Call> call, Response> response) { 48 | sizeList = response.body(); 49 | selectSizeAdapter = new SelectSizeAdapter(sizeList, getContext()); 50 | recyclerView.setAdapter(selectSizeAdapter); 51 | Log.e("Sizes fetched", String.valueOf(sizeList.size())); 52 | } 53 | 54 | @Override 55 | public void onFailure(Call> call, Throwable t) { 56 | Log.e("Failed getting sizes",t.getLocalizedMessage()); 57 | } 58 | }); 59 | return view; 60 | 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/models/Datacenter.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.models; 2 | 3 | import java.util.ArrayList; 4 | 5 | import in.tosc.digitaloceanapp.R; 6 | 7 | /** 8 | * Created by rishabhkhanna on 27/11/16. 9 | */ 10 | 11 | public class Datacenter { 12 | public static class center{ 13 | 14 | public int getId() { 15 | return id; 16 | } 17 | 18 | public void setId(int id) { 19 | this.id = id; 20 | } 21 | 22 | int id; 23 | String city; 24 | 25 | public center(int id, String city) { 26 | this.id = id; 27 | this.city = city; 28 | } 29 | 30 | public String getCity() { 31 | return city; 32 | } 33 | 34 | public void setCity(String city) { 35 | this.city = city; 36 | } 37 | 38 | } 39 | 40 | public static ArrayList
getCenter(){ 41 | ArrayList
centers = new ArrayList<>(7); 42 | 43 | centers.add(new center(R.drawable.murrica , "New York")); 44 | centers.add(new center(R.drawable.murrica , "San Francisco")); 45 | centers.add(new center(R.drawable.amsterdam , "Amsterdam")); 46 | centers.add(new center(R.drawable.singapore , "Singapore")); 47 | centers.add(new center(R.drawable.london , "London")); 48 | centers.add(new center(R.drawable.frankfurt , "Frankfurt")); 49 | centers.add(new center(R.drawable.canada , "Toronto")); 50 | centers.add(new center(R.drawable.india , "Bangalore")); 51 | 52 | return centers; 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/java/in/tosc/digitaloceanapp/models/ServerSize.java: -------------------------------------------------------------------------------- 1 | package in.tosc.digitaloceanapp.models; 2 | 3 | import android.util.Log; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * Created by rishabhkhanna on 27/11/16. 9 | */ 10 | 11 | public class ServerSize { 12 | public static class SizeModel{ 13 | String perMonth; 14 | String perHour; 15 | String ram; 16 | String cpu; 17 | String ssd; 18 | 19 | public SizeModel(String perMonth, String perHour, String ram, String cpu, String ssd) { 20 | this.perMonth = perMonth; 21 | this.perHour = perHour; 22 | this.ram = ram; 23 | this.cpu = cpu; 24 | this.ssd = ssd; 25 | } 26 | 27 | public String getPerMonth() { 28 | return perMonth; 29 | } 30 | 31 | public void setPerMonth(String perMonth) { 32 | this.perMonth = perMonth; 33 | } 34 | 35 | public String getPerHour() { 36 | return perHour; 37 | } 38 | 39 | public void setPerHour(String perHour) { 40 | this.perHour = perHour; 41 | } 42 | 43 | public String getRam() { 44 | return ram; 45 | } 46 | 47 | public void setRam(String ram) { 48 | this.ram = ram; 49 | } 50 | 51 | public String getCpu() { 52 | return cpu; 53 | } 54 | 55 | public void setCpu(String cpu) { 56 | this.cpu = cpu; 57 | } 58 | 59 | public String getSsd() { 60 | return ssd; 61 | } 62 | 63 | public void setSsd(String ssd) { 64 | this.ssd = ssd; 65 | } 66 | } 67 | 68 | public static ArrayList getSizes() { 69 | ArrayList sizes = new ArrayList<>(8); 70 | 71 | sizes.add(new SizeModel("5", "0.007", "512", "1", "20")); 72 | sizes.add(new SizeModel("10", "0.015", "1", "1", "30")); 73 | sizes.add(new SizeModel("20", "0.030", "2", "2", "40")); 74 | sizes.add(new SizeModel("40", "0.060", "4", "2", "60")); 75 | sizes.add(new SizeModel("80", "0.119", "8", "4", "80")); 76 | sizes.add(new SizeModel("160", "0.238", "16", "8", "160")); 77 | sizes.add(new SizeModel("320", "0.476", "32", "12", "320")); 78 | sizes.add(new SizeModel("480", "0.714", "48", "16", "480")); 79 | sizes.add(new SizeModel("640", "0.952", "48", "20", "640")); 80 | 81 | Log.d("Size log :" , String.valueOf(sizes.get(0))); 82 | return sizes; 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/digital_ocean_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/digital_ocean_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_account_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_account_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_create_droplet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_create_droplet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_directions_run_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_directions_run_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_menu_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_menu_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_payment_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_payment_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_power_settings_new_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_power_settings_new_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_vpn_key_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-hdpi/ic_vpn_key_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_account_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_account_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_create_droplet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_create_droplet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_directions_run_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_directions_run_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_menu_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_menu_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_payment_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_payment_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_power_settings_new_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_power_settings_new_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_vpn_key_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-mdpi/ic_vpn_key_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_account_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_account_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_create_droplet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_create_droplet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_directions_run_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_directions_run_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_menu_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_menu_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_payment_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_payment_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_power_settings_new_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_power_settings_new_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_vpn_key_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xhdpi/ic_vpn_key_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_account_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_account_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_create_droplet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_create_droplet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_directions_run_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_directions_run_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_menu_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_menu_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_payment_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_payment_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_power_settings_new_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_power_settings_new_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_vpn_key_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxhdpi/ic_vpn_key_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_directions_run_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_directions_run_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_menu_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_menu_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_payment_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_payment_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_power_settings_new_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_power_settings_new_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_vpn_key_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable-xxxhdpi/ic_vpn_key_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/amsterdam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/amsterdam.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/canada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/canada.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/centos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/centos.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/centos_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/centos_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/coreos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/coreos.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/coreos_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/coreos_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/debian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/debian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/debian_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/debian_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/fedora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/fedora.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/fedora_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/fedora_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/frankfurt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/frankfurt.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/freebsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/freebsd.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/freebsd_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/freebsd_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_digitalocean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/ic_digitalocean.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_droplet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/ic_droplet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_droplet_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/ic_droplet_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/india.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/india.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/london.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/london.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/murrica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/murrica.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/singapore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/singapore.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ubuntu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/ubuntu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ubuntu_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/teamOSC/DigitalOceanApp/2a7fcd42a0cc4884cbb6796a27cd8489c06e0762/app/src/main/res/drawable/ubuntu_selected.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_droplet.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_droplet_create.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 13 | 14 | 21 | 22 |