commit 6113c8097d9afb8bf02de60d2424a40d31795fe3 Author: vylion Date: Wed Aug 12 18:40:38 2020 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7021716 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + 1.8 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2c1edf6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..01e6b7a --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + defaultConfig { + applicationId "hpacademy.floorprinter" + minSdkVersion 21 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:26.1.0' + implementation 'com.android.support:support-v4:26.1.0' + implementation 'com.android.support:design:26.1.0' + implementation 'com.android.support:support-annotations:27.1.1' + implementation 'com.android.support:recyclerview-v7:26.1.0' + implementation 'com.android.support:cardview-v7:26.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.2' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation 'com.android.support:gridlayout-v7:26.1.0' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/hpacademy/floorprinter/ExampleInstrumentedTest.java b/app/src/androidTest/java/hpacademy/floorprinter/ExampleInstrumentedTest.java new file mode 100644 index 0000000..3871c63 --- /dev/null +++ b/app/src/androidTest/java/hpacademy/floorprinter/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package hpacademy.floorprinter; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("hpacademy.floorprinter", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..343fdf8 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/hpacademy/floorprinter/AppCompatPreferenceActivity.java b/app/src/main/java/hpacademy/floorprinter/AppCompatPreferenceActivity.java new file mode 100644 index 0000000..eeb2566 --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/AppCompatPreferenceActivity.java @@ -0,0 +1,109 @@ +package hpacademy.floorprinter; + +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.Toolbar; +import android.view.MenuInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls + * to be used with AppCompat. + */ +public abstract class AppCompatPreferenceActivity extends PreferenceActivity { + + private AppCompatDelegate mDelegate; + + @Override + protected void onCreate(Bundle savedInstanceState) { + getDelegate().installViewFactory(); + getDelegate().onCreate(savedInstanceState); + super.onCreate(savedInstanceState); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + getDelegate().onPostCreate(savedInstanceState); + } + + public ActionBar getSupportActionBar() { + return getDelegate().getSupportActionBar(); + } + + public void setSupportActionBar(@Nullable Toolbar toolbar) { + getDelegate().setSupportActionBar(toolbar); + } + + @Override + public MenuInflater getMenuInflater() { + return getDelegate().getMenuInflater(); + } + + @Override + public void setContentView(@LayoutRes int layoutResID) { + getDelegate().setContentView(layoutResID); + } + + @Override + public void setContentView(View view) { + getDelegate().setContentView(view); + } + + @Override + public void setContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().setContentView(view, params); + } + + @Override + public void addContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().addContentView(view, params); + } + + @Override + protected void onPostResume() { + super.onPostResume(); + getDelegate().onPostResume(); + } + + @Override + protected void onTitleChanged(CharSequence title, int color) { + super.onTitleChanged(title, color); + getDelegate().setTitle(title); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + getDelegate().onConfigurationChanged(newConfig); + } + + @Override + protected void onStop() { + super.onStop(); + getDelegate().onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getDelegate().onDestroy(); + } + + public void invalidateOptionsMenu() { + getDelegate().invalidateOptionsMenu(); + } + + private AppCompatDelegate getDelegate() { + if (mDelegate == null) { + mDelegate = AppCompatDelegate.create(this, null); + } + return mDelegate; + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/EditorActivity.java b/app/src/main/java/hpacademy/floorprinter/EditorActivity.java new file mode 100644 index 0000000..e14318c --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/EditorActivity.java @@ -0,0 +1,54 @@ +package hpacademy.floorprinter; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v4.app.DialogFragment; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +public class EditorActivity extends AppCompatActivity { + ImageView imageView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_editor); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + + final EditorDialog exitDialog = new EditorDialog(); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + exitDialog.show(getSupportFragmentManager(), getString(R.string.dialog_editor_tag)); + } + }); + + EditText et = (EditText) findViewById(R.id.editor_width_box); + et.setText("52"); + et = (EditText) findViewById(R.id.editor_height_box); + et.setText("32"); + + imageView = findViewById(R.id.editor_preview); + + Bundle extras = getIntent().getExtras(); + if(extras != null) { + int imageId = extras.getInt("IMAGE_ID"); + imageView.setImageResource(imageId); + } + } + +} diff --git a/app/src/main/java/hpacademy/floorprinter/EditorDialog.java b/app/src/main/java/hpacademy/floorprinter/EditorDialog.java new file mode 100644 index 0000000..4b15b45 --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/EditorDialog.java @@ -0,0 +1,53 @@ +package hpacademy.floorprinter; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.Snackbar; +import android.support.v4.app.DialogFragment; +import android.support.v4.app.FragmentManager; +import android.view.View; +import android.widget.Toast; + +/** + * Created by vylion on 7/6/18. + */ + +public class EditorDialog extends DialogFragment { + public static final int OPTION_SAVE = 1; + public static final int OPTION_SAVE_AND_PRINT = 2; + public static final int OPTION_PRINT = 3; + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(getActivity()); + + builder.setMessage(R.string.dialog_editor_exit) + .setPositiveButton(R.string.dialog_editor_save, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + Toast.makeText(getContext(), "Image has been saved", Toast.LENGTH_SHORT).show(); + getActivity().finish(); + } + }) + .setNegativeButton(R.string.dialog_editor_both, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + Toast.makeText(getContext(), "The actual madman!", Toast.LENGTH_SHORT).show(); + getActivity().finish(); + } + }) + .setNeutralButton(R.string.dialog_editor_print, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + Toast.makeText(getContext(), "Printer is unavailable", Toast.LENGTH_SHORT).show(); + getActivity().finish(); + } + }); + + android.app.AlertDialog dialog = builder.create(); + dialog.setCanceledOnTouchOutside(true); + + return dialog; + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/ExplorerActivity.java b/app/src/main/java/hpacademy/floorprinter/ExplorerActivity.java new file mode 100644 index 0000000..24cc4af --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/ExplorerActivity.java @@ -0,0 +1,38 @@ +package hpacademy.floorprinter; + +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; + +public class ExplorerActivity extends AppCompatActivity { + ArrayList files; + RecyclerView recyclerView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_explorer); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + files = new ArrayList<>(); + files.add(new FilePreview(getString(R.string.file_example_1), R.drawable.hp_logo_demo)); + files.add(new FilePreview(getString(R.string.file_example_2), R.drawable.hp_brackets_demo)); + + recyclerView = findViewById(R.id.explorer_recycle_view); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + recyclerView.setLayoutManager(layoutManager); + + ExplorerAdapter adapter = new ExplorerAdapter(this, files); + recyclerView.setAdapter(adapter); + } + +} diff --git a/app/src/main/java/hpacademy/floorprinter/ExplorerAdapter.java b/app/src/main/java/hpacademy/floorprinter/ExplorerAdapter.java new file mode 100644 index 0000000..df17bd6 --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/ExplorerAdapter.java @@ -0,0 +1,49 @@ +package hpacademy.floorprinter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * Created by vylion on 7/6/18. + */ + +public class ExplorerAdapter extends RecyclerView.Adapter { + private Context context; + private ArrayList files; + + public ExplorerAdapter(Context context, ArrayList files) { + this.context = context; + this.files = files; + } + + @Override + public FileHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_explorer_row, parent, false); + return new ExplorerAdapter.FileHolder(view); + } + + @Override + public void onBindViewHolder(FileHolder holder, int position) { + holder.filenameText.setText(files.get(position).getFilename()); + } + + @Override + public int getItemCount() { + return files.size(); + } + + public class FileHolder extends RecyclerView.ViewHolder { + public TextView filenameText; + + public FileHolder(View itemView) { + super(itemView); + filenameText = itemView.findViewById(R.id.file_text); + } + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/FilePreview.java b/app/src/main/java/hpacademy/floorprinter/FilePreview.java new file mode 100644 index 0000000..08b895e --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/FilePreview.java @@ -0,0 +1,23 @@ +package hpacademy.floorprinter; + +/** + * Created by vylion on 7/5/18. + */ + +public class FilePreview { + private String filename; + private int filePreviewImg; + + public FilePreview(String filename, int filePreviewImg) { + this.filename = filename; + this.filePreviewImg = filePreviewImg; + } + + public String getFilename() { + return filename; + } + + public int getFilePreviewImg() { + return filePreviewImg; + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/MainActivity.java b/app/src/main/java/hpacademy/floorprinter/MainActivity.java new file mode 100644 index 0000000..2437176 --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/MainActivity.java @@ -0,0 +1,118 @@ +package hpacademy.floorprinter; + +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; + +import java.util.ArrayList; + +public class MainActivity extends AppCompatActivity + implements NavigationView.OnNavigationItemSelectedListener { + + ArrayList files; + RecyclerView recyclerView; + GridLayoutManager gridLayoutManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.addDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + navigationView.setNavigationItemSelectedListener(this); + + files = new ArrayList<>(); + files.add(new FilePreview(getString(R.string.file_example_1), R.drawable.hp_logo_demo)); + files.add(new FilePreview(getString(R.string.file_example_2), R.drawable.hp_brackets_demo)); + + recyclerView = findViewById(R.id.main_recycler_view); + gridLayoutManager = new GridLayoutManager(this, 2); + recyclerView.setLayoutManager(gridLayoutManager); + + MainAdapter adapter = new MainAdapter(this, files); + recyclerView.setAdapter(adapter); + } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + + if (id == R.id.nav_editor) { + Intent intent = new Intent(this, EditorActivity.class); + startActivity(intent); + } else if (id == R.id.nav_explorer) { + Intent intent = new Intent(this, ExplorerActivity.class); + startActivity(intent); + } else if (id == R.id.nav_options) { + Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + } + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/MainAdapter.java b/app/src/main/java/hpacademy/floorprinter/MainAdapter.java new file mode 100644 index 0000000..c77b9fc --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/MainAdapter.java @@ -0,0 +1,54 @@ +package hpacademy.floorprinter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * Created by vylion on 7/5/18. + */ + +public class MainAdapter extends RecyclerView.Adapter { + private Context context; + private ArrayList files; + + public MainAdapter(Context context, ArrayList files) { + this.context = context; + this.files = files; + } + + @Override + public FileHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_main_item, parent, false); + return new FileHolder(view); + } + + @Override + public void onBindViewHolder(FileHolder holder, int position) { + holder.filenameText.setText(files.get(position).getFilename()); + holder.filePreviewImgView.setImageResource(files.get(position).getFilePreviewImg()); + } + + @Override + public int getItemCount() { + return files.size(); + } + + public class FileHolder extends RecyclerView.ViewHolder { + public TextView filenameText; + public ImageView filePreviewImgView; + + public FileHolder(View itemView) { + super(itemView); + + filenameText = itemView.findViewById(R.id.supporting_text); + filePreviewImgView = itemView.findViewById(R.id.media_image); + } + } +} diff --git a/app/src/main/java/hpacademy/floorprinter/SettingsActivity.java b/app/src/main/java/hpacademy/floorprinter/SettingsActivity.java new file mode 100644 index 0000000..090a383 --- /dev/null +++ b/app/src/main/java/hpacademy/floorprinter/SettingsActivity.java @@ -0,0 +1,267 @@ +package hpacademy.floorprinter; + +import android.annotation.TargetApi; +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; +import android.media.Ringtone; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.support.v7.app.ActionBar; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.preference.RingtonePreference; +import android.text.TextUtils; +import android.view.MenuItem; +import android.support.v4.app.NavUtils; + +import java.util.List; + +/** + * A {@link PreferenceActivity} that presents a set of application settings. On + * handset devices, settings are presented as a single list. On tablets, + * settings are split by category, with category headers shown to the left of + * the list of settings. + *

+ * See + * Android Design: Settings for design guidelines and the Settings + * API Guide for more information on developing a Settings UI. + */ +public class SettingsActivity extends AppCompatPreferenceActivity { + + /** + * A preference value change listener that updates the preference's summary + * to reflect its new value. + */ + private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object value) { + String stringValue = value.toString(); + + if (preference instanceof ListPreference) { + // For list preferences, look up the correct display value in + // the preference's 'entries' list. + ListPreference listPreference = (ListPreference) preference; + int index = listPreference.findIndexOfValue(stringValue); + + // Set the summary to reflect the new value. + preference.setSummary( + index >= 0 + ? listPreference.getEntries()[index] + : null); + + } else if (preference instanceof RingtonePreference) { + // For ringtone preferences, look up the correct display value + // using RingtoneManager. + if (TextUtils.isEmpty(stringValue)) { + // Empty values correspond to 'silent' (no ringtone). + preference.setSummary(R.string.pref_ringtone_silent); + + } else { + Ringtone ringtone = RingtoneManager.getRingtone( + preference.getContext(), Uri.parse(stringValue)); + + if (ringtone == null) { + // Clear the summary if there was a lookup error. + preference.setSummary(null); + } else { + // Set the summary to reflect the new ringtone display + // name. + String name = ringtone.getTitle(preference.getContext()); + preference.setSummary(name); + } + } + + } else { + // For all other preferences, set the summary to the value's + // simple string representation. + preference.setSummary(stringValue); + } + return true; + } + }; + + /** + * Helper method to determine if the device has an extra-large screen. For + * example, 10" tablets are extra-large. + */ + private static boolean isXLargeTablet(Context context) { + return (context.getResources().getConfiguration().screenLayout + & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; + } + + /** + * Binds a preference's summary to its value. More specifically, when the + * preference's value is changed, its summary (line of text below the + * preference title) is updated to reflect the value. The summary is also + * immediately updated upon calling this method. The exact display format is + * dependent on the type of preference. + * + * @see #sBindPreferenceSummaryToValueListener + */ + private static void bindPreferenceSummaryToValue(Preference preference) { + // Set the listener to watch for value changes. + preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); + + // Trigger the listener immediately with the preference's + // current value. + sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, + PreferenceManager + .getDefaultSharedPreferences(preference.getContext()) + .getString(preference.getKey(), "")); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setupActionBar(); + } + + /** + * Set up the {@link android.app.ActionBar}, if the API is available. + */ + private void setupActionBar() { + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + // Show the Up button in the action bar. + actionBar.setDisplayHomeAsUpEnabled(true); + } + } + + @Override + public boolean onMenuItemSelected(int featureId, MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + if (!super.onMenuItemSelected(featureId, item)) { + NavUtils.navigateUpFromSameTask(this); + } + return true; + } + return super.onMenuItemSelected(featureId, item); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean onIsMultiPane() { + return isXLargeTablet(this); + } + + /** + * {@inheritDoc} + */ + @Override + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public void onBuildHeaders(List

target) { + loadHeadersFromResource(R.xml.pref_headers, target); + } + + /** + * This method stops fragment injection in malicious applications. + * Make sure to deny any unknown fragments here. + */ + protected boolean isValidFragment(String fragmentName) { + return PreferenceFragment.class.getName().equals(fragmentName) + || GeneralPreferenceFragment.class.getName().equals(fragmentName) + || DataSyncPreferenceFragment.class.getName().equals(fragmentName) + || NotificationPreferenceFragment.class.getName().equals(fragmentName); + } + + /** + * This fragment shows general preferences only. It is used when the + * activity is showing a two-pane settings UI. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public static class GeneralPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_general); + setHasOptionsMenu(true); + + // Bind the summaries of EditText/List/Dialog/Ringtone preferences + // to their values. When their values change, their summaries are + // updated to reflect the new value, per the Android Design + // guidelines. + bindPreferenceSummaryToValue(findPreference("example_text")); + bindPreferenceSummaryToValue(findPreference("example_list")); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + startActivity(new Intent(getActivity(), SettingsActivity.class)); + return true; + } + return super.onOptionsItemSelected(item); + } + } + + /** + * This fragment shows notification preferences only. It is used when the + * activity is showing a two-pane settings UI. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public static class NotificationPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_notification); + setHasOptionsMenu(true); + + // Bind the summaries of EditText/List/Dialog/Ringtone preferences + // to their values. When their values change, their summaries are + // updated to reflect the new value, per the Android Design + // guidelines. + bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone")); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + startActivity(new Intent(getActivity(), SettingsActivity.class)); + return true; + } + return super.onOptionsItemSelected(item); + } + } + + /** + * This fragment shows data and sync preferences only. It is used when the + * activity is showing a two-pane settings UI. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public static class DataSyncPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_data_sync); + setHasOptionsMenu(true); + + // Bind the summaries of EditText/List/Dialog/Ringtone preferences + // to their values. When their values change, their summaries are + // updated to reflect the new value, per the Android Design + // guidelines. + bindPreferenceSummaryToValue(findPreference("sync_frequency")); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + startActivity(new Intent(getActivity(), SettingsActivity.class)); + return true; + } + return super.onOptionsItemSelected(item); + } + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_action_print.png b/app/src/main/res/drawable-hdpi/ic_action_print.png new file mode 100644 index 0000000..cd2ef87 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_print.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_dots.png b/app/src/main/res/drawable-hdpi/ic_dots.png new file mode 100644 index 0000000..a2e0fb0 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_dots.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_explorer_file.png b/app/src/main/res/drawable-hdpi/ic_explorer_file.png new file mode 100644 index 0000000..f0c0ded Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_explorer_file.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_nav_editor.png b/app/src/main/res/drawable-hdpi/ic_nav_editor.png new file mode 100644 index 0000000..7a22570 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_nav_editor.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_nav_explorer.png b/app/src/main/res/drawable-hdpi/ic_nav_explorer.png new file mode 100644 index 0000000..b921aad Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_nav_explorer.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_ok.png b/app/src/main/res/drawable-hdpi/ic_ok.png new file mode 100644 index 0000000..7b23ef3 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_ok.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_print.png b/app/src/main/res/drawable-mdpi/ic_action_print.png new file mode 100644 index 0000000..3503f49 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_print.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_dots.png b/app/src/main/res/drawable-mdpi/ic_dots.png new file mode 100644 index 0000000..c912c55 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_dots.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_explorer_file.png b/app/src/main/res/drawable-mdpi/ic_explorer_file.png new file mode 100644 index 0000000..42b3308 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_explorer_file.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_nav_editor.png b/app/src/main/res/drawable-mdpi/ic_nav_editor.png new file mode 100644 index 0000000..b334b47 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_nav_editor.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_nav_explorer.png b/app/src/main/res/drawable-mdpi/ic_nav_explorer.png new file mode 100644 index 0000000..9350ac9 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_nav_explorer.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_ok.png b/app/src/main/res/drawable-mdpi/ic_ok.png new file mode 100644 index 0000000..8f2ef60 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_ok.png differ diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-xhdpi/ic_action_print.png b/app/src/main/res/drawable-xhdpi/ic_action_print.png new file mode 100644 index 0000000..f38cbc0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_print.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_dots.png b/app/src/main/res/drawable-xhdpi/ic_dots.png new file mode 100644 index 0000000..914061a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_dots.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_explorer_file.png b/app/src/main/res/drawable-xhdpi/ic_explorer_file.png new file mode 100644 index 0000000..9cc5b92 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_explorer_file.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_nav_editor.png b/app/src/main/res/drawable-xhdpi/ic_nav_editor.png new file mode 100644 index 0000000..36fc7e0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_nav_editor.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_nav_explorer.png b/app/src/main/res/drawable-xhdpi/ic_nav_explorer.png new file mode 100644 index 0000000..207d93a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_nav_explorer.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_ok.png b/app/src/main/res/drawable-xhdpi/ic_ok.png new file mode 100644 index 0000000..e5a0c59 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_ok.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_print.png b/app/src/main/res/drawable-xxhdpi/ic_action_print.png new file mode 100644 index 0000000..02a20f4 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_print.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_dots.png b/app/src/main/res/drawable-xxhdpi/ic_dots.png new file mode 100644 index 0000000..bcbf3bc Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_dots.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_explorer_file.png b/app/src/main/res/drawable-xxhdpi/ic_explorer_file.png new file mode 100644 index 0000000..5c74caf Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_explorer_file.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_nav_editor.png b/app/src/main/res/drawable-xxhdpi/ic_nav_editor.png new file mode 100644 index 0000000..f162c3e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_nav_editor.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_nav_explorer.png b/app/src/main/res/drawable-xxhdpi/ic_nav_explorer.png new file mode 100644 index 0000000..4bc09b3 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_nav_explorer.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_ok.png b/app/src/main/res/drawable-xxhdpi/ic_ok.png new file mode 100644 index 0000000..fabfd27 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_ok.png differ diff --git a/app/src/main/res/drawable/hp_brackets_demo.png b/app/src/main/res/drawable/hp_brackets_demo.png new file mode 100644 index 0000000..3d5f175 Binary files /dev/null and b/app/src/main/res/drawable/hp_brackets_demo.png differ diff --git a/app/src/main/res/drawable/hp_logo.png b/app/src/main/res/drawable/hp_logo.png new file mode 100644 index 0000000..b55b8fd Binary files /dev/null and b/app/src/main/res/drawable/hp_logo.png differ diff --git a/app/src/main/res/drawable/hp_logo_demo.png b/app/src/main/res/drawable/hp_logo_demo.png new file mode 100644 index 0000000..67260d3 Binary files /dev/null and b/app/src/main/res/drawable/hp_logo_demo.png differ diff --git a/app/src/main/res/drawable/ic_info_black_24dp.xml b/app/src/main/res/drawable/ic_info_black_24dp.xml new file mode 100644 index 0000000..34b8202 --- /dev/null +++ b/app/src/main/res/drawable/ic_info_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_menu_camera.xml b/app/src/main/res/drawable/ic_menu_camera.xml new file mode 100644 index 0000000..0d9ea10 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_menu_gallery.xml b/app/src/main/res/drawable/ic_menu_gallery.xml new file mode 100644 index 0000000..f6872c4 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_manage.xml b/app/src/main/res/drawable/ic_menu_manage.xml new file mode 100644 index 0000000..c1be60b --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_menu_send.xml b/app/src/main/res/drawable/ic_menu_send.xml new file mode 100644 index 0000000..00c668c --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_share.xml b/app/src/main/res/drawable/ic_menu_share.xml new file mode 100644 index 0000000..a28fb9e --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/app/src/main/res/drawable/ic_menu_slideshow.xml new file mode 100644 index 0000000..209aa64 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 0000000..e3400cf --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml new file mode 100644 index 0000000..5a283aa --- /dev/null +++ b/app/src/main/res/drawable/ic_sync_black_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..6d81870 --- /dev/null +++ b/app/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_editor.xml b/app/src/main/res/layout/activity_editor.xml new file mode 100644 index 0000000..01d7572 --- /dev/null +++ b/app/src/main/res/layout/activity_editor.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_explorer.xml b/app/src/main/res/layout/activity_explorer.xml new file mode 100644 index 0000000..58e3adc --- /dev/null +++ b/app/src/main/res/layout/activity_explorer.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..a61d8a6 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml new file mode 100644 index 0000000..d9238c6 --- /dev/null +++ b/app/src/main/res/layout/app_bar_main.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/content_editor.xml b/app/src/main/res/layout/content_editor.xml new file mode 100644 index 0000000..6730395 --- /dev/null +++ b/app/src/main/res/layout/content_editor.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/content_explorer.xml b/app/src/main/res/layout/content_explorer.xml new file mode 100644 index 0000000..4f0fd24 --- /dev/null +++ b/app/src/main/res/layout/content_explorer.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..b8489a6 --- /dev/null +++ b/app/src/main/res/layout/content_main.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/layout/list_explorer_row.xml b/app/src/main/res/layout/list_explorer_row.xml new file mode 100644 index 0000000..6960136 --- /dev/null +++ b/app/src/main/res/layout/list_explorer_row.xml @@ -0,0 +1,32 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_main_item.xml b/app/src/main/res/layout/list_main_item.xml new file mode 100644 index 0000000..b9252e5 --- /dev/null +++ b/app/src/main/res/layout/list_main_item.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_item_row.xml b/app/src/main/res/layout/main_item_row.xml new file mode 100644 index 0000000..d7639e9 --- /dev/null +++ b/app/src/main/res/layout/main_item_row.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml new file mode 100644 index 0000000..2ae4e49 --- /dev/null +++ b/app/src/main/res/layout/nav_header_main.xml @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml new file mode 100644 index 0000000..f683977 --- /dev/null +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml new file mode 100644 index 0000000..a2411e3 --- /dev/null +++ b/app/src/main/res/menu/main.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..a2f5908 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..1b52399 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..ff10afd Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..115a4c7 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..dcd3cd8 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..459ca60 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..8ca12fe Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..8e19b41 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..b824ebd Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..4c19a13 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..fd7a058 --- /dev/null +++ b/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..3ab3e9c --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..4ab4520 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,8 @@ + + + 16dp + 16dp + 8dp + 176dp + 16dp + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..e0a6073 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,99 @@ + + Floor Printer + Image Editor + File Explorer + + Open navigation drawer + Close navigation drawer + + Settings + Loaded image. + filename + Popup menu button. + + Do you want to save? + Save + Save and print + Only print + Save + + hp_logo.png + brackets.png + + Editor + Explorer + Options + Settings + + + + + General + + Enable social recommendations + Recommendations for people to contact + based on your message history + + + Display name + John Smith + + Add friends to messages + + Always + When possible + Never + + + 1 + 0 + -1 + + + + Data & sync + + Sync frequency + + 15 minutes + 30 minutes + 1 hour + 3 hours + 6 hours + Never + + + 15 + 30 + 60 + 180 + 360 + -1 + + + + Entry 1 + Entry 2 + Entry 3 + + + + 1 + 2 + 3 + + + + + System sync settings + + + Notifications + + New message notifications + + Ringtone + Silent + + Vibrate + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..545b9c6 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + +