diff --git a/app/build.gradle b/app/build.gradle index 28a45e1..82f1d98 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,7 +76,7 @@ dependencies { compile 'com.larswerkman:HoloColorPicker:1.5@aar' compile 'com.google.guava:guava:19.0' compile 'com.thetransactioncompany:jsonrpc2-base:1.38' - compile('com.mikepenz:materialdrawer:5.1.4@aar') { + compile('com.mikepenz:materialdrawer:5.1.5@aar') { transitive = true } provided 'org.projectlombok:lombok:1.16.8' diff --git a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java index 091f15b..2c2f4d4 100644 --- a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java +++ b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java @@ -27,9 +27,11 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.annotation.Nullable; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.util.SparseArray; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -37,11 +39,15 @@ import android.view.View; import android.widget.CompoundButton; import android.widget.LinearLayout; +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; import com.idlegandalf.ledd.callbacks.RecieveColorCallback; import com.idlegandalf.ledd.callbacks.StripesCallback; import com.idlegandalf.ledd.components.HSV; import com.idlegandalf.ledd.components.LedDDaemon; import com.idlegandalf.ledd.components.LedStripe; +import com.idlegandalf.ledd.components.Profile; +import com.idlegandalf.ledd.fragments.AddProfileDialog; import com.idlegandalf.ledd.fragments.AddStripeDialog; import com.idlegandalf.ledd.helper.LedDHelper; import com.idlegandalf.ledd.utils.RateLimiter; @@ -52,10 +58,13 @@ import com.mikepenz.materialdrawer.Drawer; import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.holder.BadgeStyle; import com.mikepenz.materialdrawer.interfaces.OnCheckedChangeListener; +import com.mikepenz.materialdrawer.model.DividerDrawerItem; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; +import com.mikepenz.materialdrawer.model.SecondaryDrawerItem; import com.mikepenz.materialdrawer.model.SecondarySwitchDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -63,7 +72,7 @@ import butterknife.Bind; import butterknife.ButterKnife; import hugo.weaving.DebugLog; -public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerItemClickListener, OnCheckedChangeListener { +public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerItemClickListener, Drawer.OnDrawerItemLongClickListener, OnCheckedChangeListener { @Bind(R.id.main_layout) LinearLayout scrollView; @@ -79,12 +88,15 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI private List mDaemons; private refreshDaemonsListener daemonsListener; private List ledStripes; + private List profiles; private LedStripe mCurrentStripe; private boolean fromOnCreate = true; private boolean autoColorSet = false; private RateLimiter limiter; private boolean isRefreshRunning = false; - + private Type profileList = new TypeToken>() { + }.getType(); + private PrimaryDrawerItem menuProfiles; @Override protected void onCreate(Bundle savedInstanceState) { @@ -105,7 +117,7 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } mDaemons = new ArrayList<>(); - limiter = new RateLimiter(5.0, 100.0); + limiter = new RateLimiter(30.0, 1000); colorPicker.addSaturationBar(saturationBar); colorPicker.addValueBar(valueBar); @@ -127,12 +139,18 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI .withActivity(this) .withToolbar(toolbar) .withOnDrawerItemClickListener(this) + .withOnDrawerItemLongClickListener(this) .addStickyDrawerItems( - new PrimaryDrawerItem().withName(R.string.text_add_stripe).withTag("add_stripe").withSelectable(false), - new PrimaryDrawerItem().withName(R.string.text_settings).withTag("settings").withSelectable(false) + new PrimaryDrawerItem().withName(R.string.text_add_stripe).withTag("add_stripe").withSelectable(false).withIcon(R.drawable.ic_add_circle_black_48dp), + new PrimaryDrawerItem().withName(R.string.text_settings).withTag("settings").withSelectable(false).withIcon(R.drawable.ic_tune_black_48dp) + ) + .addDrawerItems( + new DividerDrawerItem(), + menuProfiles = new PrimaryDrawerItem().withName("Profiles").withIcon(R.drawable.ic_save_black_48dp).withSelectable(false).withIsExpanded(true) ) .build(); + menuProfiles.withSubItems(new SecondaryDrawerItem().withName("Add Profile").withTag("add_profile").withSelectable(false).withIcon(R.drawable.ic_add_circle_outline_black_48dp)); // enable Homebutton navigation to drawer if (getSupportActionBar() != null) { @@ -140,6 +158,20 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI mDrawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); } + List subProfiles = menuProfiles.getSubItems(); + if (PreferenceManager.getDefaultSharedPreferences(this).contains("profiles")) { + profiles = new Gson().fromJson(PreferenceManager.getDefaultSharedPreferences(this).getString("profiles", ""), profileList); + + for (Profile profile : profiles) { + subProfiles.add(0, new SecondaryDrawerItem().withName(profile.getName()).withTag(profile.getValues()).withSelectable(false).withIcon(R.drawable.ic_note_black_48dp)); + } + } else { + profiles = new ArrayList<>(); + } + + menuProfiles.withSubItems(subProfiles); + mDrawer.updateItem(menuProfiles); + daemonsListener = new refreshDaemonsListener(); registerReceiver(daemonsListener, new IntentFilter(ColorApplication.INTENT_ACTION_REFRESH)); } @@ -160,6 +192,8 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI @Override protected void onRestart() { super.onRestart(); + ColorApplication.getInstance().onResume(); + registerReceiver(daemonsListener, new IntentFilter(ColorApplication.INTENT_ACTION_REFRESH)); refreshStripes(); } @@ -214,7 +248,10 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI unregisterReceiver(daemonsListener); if (mCurrentStripe != null) - PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("lastStripe", mCurrentStripe.getId()).commit(); + PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("lastStripe", mCurrentStripe.getId()).apply(); + + if (profiles != null) + PreferenceManager.getDefaultSharedPreferences(this).edit().putString("profiles", new Gson().toJson(profiles, profileList)).apply(); } @Override @@ -236,21 +273,41 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } + @SuppressWarnings("unchecked") @Override public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { - if (drawerItem.isSelectable()) { + if (drawerItem.getTag() instanceof String) { + String tag = (String) drawerItem.getTag(); - if (drawerItem.getTag() instanceof String) { - String tag = (String) drawerItem.getTag(); - - if (tag.equals("add_stripe")) { + switch (tag) { + case "add_stripe": new AddStripeDialog().show(getFragmentManager(), ""); return true; - } else if (tag.equals("settings")) { + case "settings": return true; + case "add_profile": + new AddProfileDialog().show(getFragmentManager(), ""); + return true; + } + } + + if (drawerItem.getTag() instanceof SparseArray) { + SparseArray sparseArray = (SparseArray) drawerItem.getTag(); + + if (ledStripes != null) { + for (LedStripe ledStripe : ledStripes) { + String json_workaround = new Gson().toJson(sparseArray.get(ledStripe.getId())); + HSV nHSV = new Gson().fromJson(json_workaround, new TypeToken() { + }.getType()); + + if (nHSV != null) { + ledStripe.setColor(nHSV); + } } } + } + if (drawerItem.isSelectable()) { if (drawerItem.getTag() instanceof Integer) { int tag = (int) drawerItem.getTag(); @@ -265,6 +322,28 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI return false; } + @Override + public boolean onItemLongClick(View view, int position, IDrawerItem drawerItem) { + return false; + } + + public List getStripes() { + return ledStripes; + } + + @DebugLog + public void addProfile(Profile profile) { + if (profiles != null) { + profiles.add(profile); + + List subProfiles = menuProfiles.getSubItems(); + subProfiles.add(0, new SecondaryDrawerItem().withName(profile.getName()).withSelectable(false).withTag(profile.getValues())); + + menuProfiles.withSubItems(subProfiles); + mDrawer.updateItem(menuProfiles); + } + } + public void refreshStripes() { if (isRefreshRunning) return; @@ -293,8 +372,8 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } if (nDaemonMenu == null) { - nDaemonMenu = new PrimaryDrawerItem().withName(dDaemon.toString()).withTag(finalI).withSelectable(false).withIsExpanded(true); - mDrawer.addItem(nDaemonMenu); + nDaemonMenu = new PrimaryDrawerItem().withName(dDaemon.toString()).withTag(finalI).withSelectable(false).withIsExpanded(true).withIcon(R.drawable.ic_computer_black_48dp); + mDrawer.addItemAtPosition(nDaemonMenu, 0); mDaemons.add(nDaemonMenu); } @@ -438,6 +517,7 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } } + @Nullable @DebugLog private IDrawerItem findItemForStripe(LedStripe stripe) { for (IDrawerItem dItem : mDaemons) { diff --git a/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java b/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java index 409f1ce..b14117d 100644 --- a/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java +++ b/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java @@ -19,6 +19,7 @@ package com.idlegandalf.ledd.components; import android.graphics.Color; +import android.support.annotation.Nullable; import com.idlegandalf.ledd.ColorApplication; import com.idlegandalf.ledd.callbacks.RecieveColorCallback; @@ -90,10 +91,27 @@ public class LedStripe { } @DebugLog - public void getColor(RecieveColorCallback callback) { + public void getColor(@Nullable final RecieveColorCallback callback) { checkHelper(); - helper.getColor(this, callback); + helper.getColor(this, new RecieveColorCallback() { + @Override + public void onColorRecieved(LedStripe stripe) { + color = stripe.getColor(); + if (callback != null) + callback.onColorRecieved(LedStripe.this); + } + + @Override + public void onRecievFailed(int code, String msg) { + if (callback != null) callback.onRecievFailed(code, msg); + } + + @Override + public void onConnectionFailed(String message) { + if (callback != null) callback.onConnectionFailed(message); + } + }); } @DebugLog diff --git a/app/src/main/java/com/idlegandalf/ledd/components/Profile.java b/app/src/main/java/com/idlegandalf/ledd/components/Profile.java new file mode 100644 index 0000000..e2d62c8 --- /dev/null +++ b/app/src/main/java/com/idlegandalf/ledd/components/Profile.java @@ -0,0 +1,22 @@ +package com.idlegandalf.ledd.components; + +import android.util.SparseArray; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Profile { + private SparseArray values; + private String name; + + public Profile(SparseArray hsvHashMap) { + setValues(hsvHashMap); + } + + public Profile(String name) { + setValues(new SparseArray()); + setName(name); + } +} diff --git a/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java b/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java new file mode 100644 index 0000000..55ba864 --- /dev/null +++ b/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java @@ -0,0 +1,151 @@ +package com.idlegandalf.ledd.fragments; + +/* + * LEDD Project + * Copyright (C) 2015 LEDD Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.design.widget.TextInputLayout; +import android.support.v7.app.AlertDialog; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.Toast; + +import com.idlegandalf.ledd.ColorActivity; +import com.idlegandalf.ledd.R; +import com.idlegandalf.ledd.components.LedStripe; +import com.idlegandalf.ledd.components.Profile; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.Bind; +import butterknife.ButterKnife; +import hugo.weaving.DebugLog; + + +public class AddProfileDialog extends DialogFragment implements DialogInterface.OnShowListener { + + @Bind(R.id.input_profile_name_layout) + TextInputLayout nameLayout; + @Bind(R.id.input_profile_name) + EditText nameText; + @Bind(R.id.container_linlay) + LinearLayout checkboxContainer; + List mStripes; + List mCheckboxes; + + @DebugLog + public Dialog onCreateDialog(Bundle savedInstanceState) { + View v = View.inflate(getActivity(), R.layout.fragment_addprofile, null); + ButterKnife.bind(this, v); + + mStripes = ((ColorActivity) getActivity()).getStripes(); + mCheckboxes = new ArrayList<>(); + + for (LedStripe ledStripe : mStripes) { + CheckBox nC = (CheckBox) View.inflate(getActivity(), R.layout.fragment_addprofile_item, null); + + nC.setText(ledStripe.getName()); + mCheckboxes.add(nC); + checkboxContainer.addView(nC); + } + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setView(v).setPositiveButton("Save", null).setNegativeButton("Cancel", null); + + AlertDialog dialog = builder.create(); + + dialog.setOnShowListener(this); + + return dialog; + } + + @Override + public void onShow(final DialogInterface dialog) { + + final AlertDialog alertDialog = (AlertDialog) dialog; + + nameText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + nameLayout.setError(null); + } + }); + + alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + alertDialog.dismiss(); + } + }); + + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (nameText.getText().toString().isEmpty()) { + nameLayout.setError("Please enter a name"); + return; + } + + int checked = 0; + for (CheckBox c : mCheckboxes) { + if (c.isChecked()) { + checked++; + mStripes.get(checkboxContainer.indexOfChild(c)).getColor(); + } + } + + if (checked < 2) { + Toast.makeText(getActivity(), "Please select at least two stripes for your profile", Toast.LENGTH_LONG).show(); + return; + } + + Profile profile = new Profile(nameText.getText().toString()); + + for (CheckBox c : mCheckboxes) { + if (c.isChecked()) { + LedStripe stripe = mStripes.get(checkboxContainer.indexOfChild(c)); + profile.getValues().append(stripe.getId(), stripe.getColor()); + } + } + + ((ColorActivity) getActivity()).addProfile(profile); + Toast.makeText(getActivity(), "Added profile " + nameText.getText().toString(), Toast.LENGTH_SHORT).show(); + dismiss(); + } + }); + } +} + diff --git a/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java b/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java deleted file mode 100644 index 56d1cee..0000000 --- a/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.idlegandalf.ledd.utils; - - -import android.graphics.Bitmap; -import android.graphics.Color; -import android.opengl.GLES30; -import android.util.Log; - -import java.nio.IntBuffer; - -public class GraphicUtils { - int fmt; - int w; - int h; - int nBytes; - int[] PBOs; - int numDownloads = 0; - int numPBOs = 0; - int dx = 0; - IntBuffer pixelBuf; - - public GraphicUtils(int fmt, int w, int h, int xbuff) { - if (PBOs != null) { - Log.w("LedD", "Already initialized. Not necessary to initialize again; or shutdown first."); - return; - } - - if (xbuff < 1 || xbuff > 10) { - Log.w("LedD", "Invalid number of buffers: more then 10 or less then 1 buffer"); - return; - } - - this.fmt = fmt; - this.w = w; - this.h = h; - this.numPBOs = xbuff; - - if (fmt == GLES30.GL_RED || fmt == GLES30.GL_GREEN || fmt == GLES30.GL_BLUE) { - this.nBytes = w * h; - } else if (fmt == GLES30.GL_RGB) { - this.nBytes = w * h * 3; - } else if (fmt == GLES30.GL_RGBA) { - this.nBytes = w * h * 4; - } else { - Log.w("LedD", "Unhandled pixel format, use GL_R, GL_RG, GL_RGB or GL_RGBA."); - } - - if (this.nBytes == 0) { - Log.w("LedD", String.format("Invalid width or height given: %d x %d", w, h)); - return; - } - - PBOs = new int[xbuff]; - - pixelBuf = IntBuffer.allocate(nBytes); - - GLES30.glGenBuffers(xbuff, PBOs, 0); - - for (int i = 0; i < xbuff; i++) { - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[i]); - GLES30.glBufferData(GLES30.GL_PIXEL_PACK_BUFFER, nBytes, null, GLES30.GL_STREAM_READ); - } - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, 0); - } - - public void download() { - long curNanos = System.nanoTime(); - - if (numDownloads < numPBOs) { - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[dx]); - GLES30.glReadPixels(0, 0, w, h, fmt, GLES30.GL_UNSIGNED_BYTE, null); - Log.d("LedD", String.format("glReadPixels() with pbo: %d", PBOs[dx])); - } else { - Log.d("LedD", String.format("glMapBuffer() with pbo: %d", PBOs[dx])); - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[dx]); - GLES30.glBufferData(GLES30.GL_PIXEL_PACK_BUFFER, nBytes, pixelBuf, GLES30.GL_STATIC_READ); - - GLES30.glReadPixels(0, 0, w, h, fmt, GLES30.GL_UNSIGNED_BYTE, null); - } - - dx++; - dx = dx % numPBOs; - - numDownloads++; - if (numDownloads == Integer.MAX_VALUE) { - numDownloads = 0; - } - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, 0); - - Log.d("LedD", String.format("Download took: %f ms.", ((double) System.nanoTime() - curNanos) / 1000000.0)); - } - - public Bitmap getCurBufferBitmap() { - int[] b = pixelBuf.array(); - int[] bt = new int[w * h]; - - for (int i = 0; i < h; i++) { - //remember, that OpenGL bitmap is incompatible with Android bitmap - //and so, some correction need. - - for (int j = 0; j < w; j++) { - int pix = b[i * w + j]; - int pb = (pix >> 16) & 0xff; - int pr = (pix << 16) & 0x00ff0000; - int pix1 = (pix & 0xff00ff00) | pr | pb; - bt[(h - i - 1) * w + j] = pix1; - } - } - Bitmap.Config bconfig = Bitmap.Config.RGB_565; - - return Bitmap.createBitmap(bt, w, h, bconfig); - } - - public int getAvgBitmapBufferColor() { - download(); - Bitmap bitmap = getCurBufferBitmap(); - int redBucket = 0; - int greenBucket = 0; - int blueBucket = 0; - int alphaBucket = 0; - - boolean hasAlpha = bitmap.hasAlpha(); - int pixelCount = bitmap.getWidth() * bitmap.getHeight(); - int[] pixels = new int[pixelCount]; - bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); - - for (int y = 0, h = bitmap.getHeight(); y < h; y++) { - for (int x = 0, w = bitmap.getWidth(); x < w; x++) { - int color = pixels[x + y * w]; // x + y * width - redBucket += (color >> 16) & 0xFF; // Color.red - greenBucket += (color >> 8) & 0xFF; // Color.greed - blueBucket += (color & 0xFF); // Color.blue - if (hasAlpha) alphaBucket += (color >>> 24); // Color.alpha - } - } - - return Color.argb( - (hasAlpha) ? (alphaBucket / pixelCount) : 255, - redBucket / pixelCount, - greenBucket / pixelCount, - blueBucket / pixelCount); - } -} diff --git a/app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000..f75ae29 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png deleted file mode 100644 index ceb1a1e..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png deleted file mode 100644 index 6b717e0..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index 595ff10..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index 02e19d0..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-hdpi/ic_note_black_48dp.png new file mode 100644 index 0000000..30976ea Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_note_black_48dp.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-hdpi/ic_save_black_48dp.png new file mode 100644 index 0000000..871291b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_save_black_48dp.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 1d2a4bf..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_wb_iridescent_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-mdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000..eae5806 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_add_circle_outline_black_48dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png deleted file mode 100644 index af7f828..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-mdpi/ic_clear_white_48dp.png deleted file mode 100644 index b7c7ffd..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_clear_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index 12b09f1..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-mdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index 5a06bff..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-mdpi/ic_note_black_48dp.png new file mode 100644 index 0000000..a84aeb0 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_note_black_48dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-mdpi/ic_save_black_48dp.png new file mode 100644 index 0000000..eca2d92 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_save_black_48dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-mdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 0e7543d..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_wb_iridescent_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000..5e523a5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_clear_white_24dp.png deleted file mode 100644 index b7c7ffd..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_clear_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png deleted file mode 100644 index 3964192..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index 5a06bff..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index d6668a0..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png new file mode 100644 index 0000000..b4679ea Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png new file mode 100644 index 0000000..ba00183 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index e7058c5..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000..179a116 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png deleted file mode 100644 index 6b717e0..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_clear_white_48dp.png deleted file mode 100644 index 4927bc2..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_clear_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index 02e19d0..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index 377b2e8..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_note_black_48dp.png new file mode 100644 index 0000000..511f690 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_note_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png new file mode 100644 index 0000000..e6a16cf Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 3389ccc..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000..428a109 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png deleted file mode 100644 index 3964192..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_clear_white_48dp.png deleted file mode 100644 index bb21ce0..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_clear_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index d6668a0..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index bde8b21..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_note_black_48dp.png new file mode 100644 index 0000000..afef81f Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_note_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_save_black_48dp.png new file mode 100644 index 0000000..ecdaa50 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_save_black_48dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 638499a..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png and /dev/null differ diff --git a/app/src/main/res/layout/fragment_addprofile.xml b/app/src/main/res/layout/fragment_addprofile.xml new file mode 100644 index 0000000..381673f --- /dev/null +++ b/app/src/main/res/layout/fragment_addprofile.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_addprofile_item.xml b/app/src/main/res/layout/fragment_addprofile_item.xml new file mode 100644 index 0000000..e7cc317 --- /dev/null +++ b/app/src/main/res/layout/fragment_addprofile_item.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/layout/navigation_header.xml b/app/src/main/res/layout/navigation_header.xml deleted file mode 100644 index 408102e..0000000 --- a/app/src/main/res/layout/navigation_header.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index eb5437d..8d03454 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -22,7 +22,7 @@ Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> -