diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f8ee69 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# binaryClock: an android binary clock widget fully customizable + +The hours, minuts and seconds are displayed on 2 columns in binary. +The digits' skin are customizable in shape (circle and rectangle) and color. + +The devices targetted must have an API level of 21 or higher, which corresponds to Lolipop in version 5.0 or higher. diff --git a/app/src/main/java/team23/binaryclock/ClockFace.java b/app/src/main/java/team23/binaryclock/ClockFace.java index 9537c6b..f60853d 100644 --- a/app/src/main/java/team23/binaryclock/ClockFace.java +++ b/app/src/main/java/team23/binaryclock/ClockFace.java @@ -20,29 +20,30 @@ public ClockFace(){ this.bitGrid = new ArrayList<>(6); for (int i=0; i < 6 ; i++){ ArrayList row = new ArrayList(4); - if (i/2 == 0) { - row.add(new NfBitTuple(this.h, 7-(i%2)*4)); - row.add(new NfBitTuple(this.h, 6-(i%2)*4)); - row.add(new NfBitTuple(this.h, 5-(i%2)*4)); - row.add(new NfBitTuple(this.h, 4-(i%2)*4)); - } - else if(i/2 == 1){ - row.add(new NfBitTuple(this.m, 7-(i%2)*4)); - row.add(new NfBitTuple(this.m, 6-(i%2)*4)); - row.add(new NfBitTuple(this.m, 5-(i%2)*4)); - row.add(new NfBitTuple(this.m, 4-(i%2)*4)); - } - else if(i/2 == 2){ - row.add(new NfBitTuple(this.s, 7-(i%2)*4)); - row.add(new NfBitTuple(this.s, 6-(i%2)*4)); - row.add(new NfBitTuple(this.s, 5-(i%2)*4)); - row.add(new NfBitTuple(this.s, 4-(i%2)*4)); + switch(i/2) { + case(0): + row = this.addRows(row, i, this.h); + break; + case(1): + row = this.addRows(row, i, this.m); + break; + case(2): + row = this.addRows(row, i, this.s); + break; } this.bitGrid.add(row); } } + /* Factorised Method to add bit tuple in an Array */ + private ArrayList addRows(ArrayList row, int i, NumberFace timeValue) { + row.add(new NfBitTuple(timeValue, 7-(i%2)*4)); + row.add(new NfBitTuple(timeValue, 6-(i%2)*4)); + row.add(new NfBitTuple(timeValue, 5-(i%2)*4)); + row.add(new NfBitTuple(timeValue, 4-(i%2)*4)); + } + public void setTime(){ Calendar now = Calendar.getInstance(); int hour = now.get(Calendar.HOUR_OF_DAY); diff --git a/app/src/main/java/team23/binaryclock/ClockService.java b/app/src/main/java/team23/binaryclock/ClockService.java index d81769b..75c7e94 100644 --- a/app/src/main/java/team23/binaryclock/ClockService.java +++ b/app/src/main/java/team23/binaryclock/ClockService.java @@ -59,7 +59,6 @@ class ClockWidgetItemFactory implements RemoteViewsFactory{ } @Override public void onCreate() { - //Log.i("callback", "onCreate()"); loadSkinFromPreferences(true); loadSkinFromPreferences(false); @@ -73,7 +72,6 @@ public void run() { Thread.sleep(500); //tries to land on the top of each second while (true) { - //Log.i("Thread", "TICK"); Calendar c = Calendar.getInstance(); int offset = c.get(Calendar.MILLISECOND); @@ -110,7 +108,6 @@ private void loadSkinFromPreferences(Boolean on){ } public void setSkin(BitSkin bitSkin, Boolean on){ - //Log.i("ClockService", "setSkin"); for (int i=0; i < bitList.size() ; i++){ bitList.get(i).setSkin(bitSkin, on); } @@ -125,77 +122,52 @@ private void askUpdate(){ @Override public void onDataSetChanged() { - //Log.i("callback", "onDatasetChanged()"); } @Override public void onDestroy() { - //Log.i("callback", "onDestroy()"); this.t.interrupt(); } @Override public int getCount() { - //Log.i("callback", "getCount()"); - return bitList.size(); } @Override public RemoteViews getViewAt(int position) { - //Log.i("callback", "getViewAt("+position+")"); if (position == AdapterView.INVALID_POSITION){ return null; } RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.bit); - - ////// To load an image from the external storage //Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + "/icon.png"); //view.setImageViewBitmap(R.id.bitImage, bm); //////// - boolean on = this.clockFace.get(position%6, position/6); view.setImageViewBitmap(R.id.bitImage, bitList.get(position).getBitmap(on)); - //Log.i("getViewAt","x:"+position%6 +", y:"+position/6+", pos:" + position + ", on:"+on); return view; } - /* - public Bitmap convertToBitmap(Drawable drawable, int widthPixels, int heightPixels) { - Bitmap mutableBitmap = Bitmap.createBitmap(widthPixels, heightPixels, Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(mutableBitmap); - drawable.setBounds(0, 0, widthPixels, heightPixels); - drawable.draw(canvas); - - return mutableBitmap; - }*/ - @Override public RemoteViews getLoadingView() { - //Log.i("callback", "getLoadingView()"); - return null; } @Override public int getViewTypeCount() { - //Log.i("callback", "getViewTypeCount()"); - return 1; } @Override public long getItemId(int position) { - //Log.i("callback", "getItemId() -> "+5000+position); return 5000+position; } @Override public boolean hasStableIds() { - //Log.i("callback", "hasStableIds()"); return true; } } diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 898f3ed..298cf4e 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png 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 index dffca36..298cf4e 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png 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 index 64ba76f..c8efc75 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png 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 index dae5e08..c8efc75 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png 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 index e5ed465..58a5df1 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png 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 index 14ed0af..58a5df1 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png 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 index b0907ca..d530f45 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png 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 index d8ae031..d530f45 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png 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 index 2c18de9..465b02c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png 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 index beed3cd..465b02c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000..cf15929 --- /dev/null +++ b/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,14 @@ + + Horloge Binaire + Point + Ajouter un Widget + Paramètres de l'horloge binaire + Visuel du bit 1 + Couleur + Forme + + + ARGB (FFAA9922) + Visuel du bit 0 + recharger + +