diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
old mode 100644
new mode 100755
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
old mode 100644
new mode 100755
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
old mode 100644
new mode 100755
index 0e23f8e..afaee01
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -3,7 +3,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
old mode 100644
new mode 100755
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
old mode 100644
new mode 100755
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/app/.gitignore b/app/.gitignore
old mode 100644
new mode 100755
diff --git a/app/app-release.apk b/app/app-release.apk
new file mode 100755
index 0000000..026109d
Binary files /dev/null and b/app/app-release.apk differ
diff --git a/app/build.gradle b/app/build.gradle
old mode 100644
new mode 100755
index a6cad41..57240db
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,13 +2,13 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 25
- buildToolsVersion "25.0.2"
+ buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.tobedecided.dynamicdialer"
minSdkVersion 16
targetSdkVersion 25
- versionCode 2
- versionName "1.1"
+ versionCode 3
+ versionName "1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
old mode 100644
new mode 100755
diff --git a/app/src/androidTest/java/com/tobedecided/dynamicdialer/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/tobedecided/dynamicdialer/ExampleInstrumentedTest.java
old mode 100644
new mode 100755
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/AboutActivity.java b/app/src/main/java/com/tobedecided/dynamicdialer/AboutActivity.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/Constants.java b/app/src/main/java/com/tobedecided/dynamicdialer/Constants.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/DialpadActivity.java b/app/src/main/java/com/tobedecided/dynamicdialer/DialpadActivity.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/GridViewAdapter.java b/app/src/main/java/com/tobedecided/dynamicdialer/GridViewAdapter.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/GsonModels.java b/app/src/main/java/com/tobedecided/dynamicdialer/GsonModels.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/ItemClickListener.java b/app/src/main/java/com/tobedecided/dynamicdialer/ItemClickListener.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/Log.java b/app/src/main/java/com/tobedecided/dynamicdialer/Log.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/LogsAdapter.java b/app/src/main/java/com/tobedecided/dynamicdialer/LogsAdapter.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/LogsFragment.java b/app/src/main/java/com/tobedecided/dynamicdialer/LogsFragment.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/MainActivity.java b/app/src/main/java/com/tobedecided/dynamicdialer/MainActivity.java
old mode 100644
new mode 100755
index b22e379..3b516df
--- a/app/src/main/java/com/tobedecided/dynamicdialer/MainActivity.java
+++ b/app/src/main/java/com/tobedecided/dynamicdialer/MainActivity.java
@@ -1,6 +1,7 @@
package com.tobedecided.dynamicdialer;
import android.app.LoaderManager;
+import android.app.ProgressDialog;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Intent;
@@ -35,6 +36,9 @@ public class MainActivity extends AppCompatActivity implements LoaderManager.Loa
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
+ private boolean firstLaunch;
+ public ProgressDialog progressDialog;
+
public static long getContactIDFromNumber(String contactNumber, Context context) {
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
@@ -56,7 +60,7 @@ public static long getContactIDFromNumber(String contactNumber, Context context)
return contactId.equals("") ? 0 : Long.parseLong(contactId);
}
- public static void sendLogs(String body, final SharedPreferences sharedPreferences) {
+ public void sendLogs(String body, final SharedPreferences sharedPreferences) {
RequestBody requestBody = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), body);
RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
retrofitInterface.sendSource("application/json", "bhavesh2109", "b5265ab5defd322e797052263c4f04e1bcb53d42", requestBody).enqueue(new Callback() {
@@ -87,6 +91,8 @@ public void onResponse(Call call, Response onCreateLoader(int id, Bundle args) {
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/Prediction.java b/app/src/main/java/com/tobedecided/dynamicdialer/Prediction.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsAdapter.java b/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsAdapter.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsFragment.java b/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsFragment.java
old mode 100644
new mode 100755
index a181aa1..ad56d6b
--- a/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsFragment.java
+++ b/app/src/main/java/com/tobedecided/dynamicdialer/PredictionsFragment.java
@@ -31,7 +31,9 @@
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import okhttp3.RequestBody;
import retrofit2.Call;
@@ -131,7 +133,7 @@ public Loader onCreateLoader(int id, Bundle args) {
case URL_LOADER:
// Returns a new CursorLoader
return new CursorLoader(
- getContext(), // Parent activity context
+ getActivity(), // Parent activity context
CallLog.Calls.CONTENT_URI, // Table to query
null, // Projection to return
null, // No selection clause
@@ -143,8 +145,13 @@ public Loader onCreateLoader(int id, Bundle args) {
}
}
+
@Override
public void onLoadFinished(Loader loader, Cursor data) {
+ if (data.isClosed()) {
+ onStart();
+ return;
+ }
int name = data.getColumnIndex(CallLog.Calls.CACHED_NAME);
int number = data.getColumnIndex(CallLog.Calls.NUMBER);
int type = data.getColumnIndex(CallLog.Calls.TYPE);
@@ -214,7 +221,8 @@ public void onLoadFinished(Loader loader, Cursor data) {
sb.append("\"}");
SharedPreferences sharedPreferences = getContext().getSharedPreferences("DynamicDialer", Context.MODE_PRIVATE);
- MainActivity.sendLogs(sb.toString(), sharedPreferences);
+ ((MainActivity)getActivity()).sendLogs(sb.toString(), sharedPreferences);
+ ((MainActivity)getActivity()).progressDialog.dismiss();
}
@Override
@@ -279,9 +287,15 @@ public void displayPredictions(GsonModels.BigMLPredictionsResponse bigMLPredicti
if (probabilities == null)
return;
predictionList = new ArrayList<>();
+ Map map = new HashMap();
for (int i = 0; i < probabilities.size(); i++) {
- if (!(getContactName(getContext(), probabilities.get(i).get(0)) == null) && !getContactName(getContext(), probabilities.get(i).get(0)).isEmpty())
- predictionList.add(new Prediction(getContactIDFromNumber(probabilities.get(i).get(1), getContext()), getContactName(getContext(), probabilities.get(i).get(0)), probabilities.get(i).get(0), Double.parseDouble(probabilities.get(i).get(1))));
+ if (!(getContactName(getContext(), probabilities.get(i).get(0)) == null) && !getContactName(getContext(), probabilities.get(i).get(0)).isEmpty()) {
+ String contactNumber = probabilities.get(i).get(0);
+ if(!map.containsKey(contactNumber)) {
+ map.put(contactNumber, true);
+ predictionList.add(new Prediction(getContactIDFromNumber(probabilities.get(i).get(1), getContext()), getContactName(getContext(), probabilities.get(i).get(0)), probabilities.get(i).get(0), Double.parseDouble(probabilities.get(i).get(1))));
+ }
+ }
}
Collections.sort(predictionList, Prediction.Comparators.PROBABILITY);
predictionsAdapter = new PredictionsAdapter(predictionList, getActivity(), new ItemClickListener() {
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/PrivacyActivity.java b/app/src/main/java/com/tobedecided/dynamicdialer/PrivacyActivity.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/RetrofitInterface.java b/app/src/main/java/com/tobedecided/dynamicdialer/RetrofitInterface.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/ServiceGenerator.java b/app/src/main/java/com/tobedecided/dynamicdialer/ServiceGenerator.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/SplashActivity.java b/app/src/main/java/com/tobedecided/dynamicdialer/SplashActivity.java
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/tobedecided/dynamicdialer/ViewPagerAdapter.java b/app/src/main/java/com/tobedecided/dynamicdialer/ViewPagerAdapter.java
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/app_icon.png b/app/src/main/res/drawable-hdpi/app_icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/ic_backspace_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_backspace_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/ic_call_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_call_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/ic_call_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_call_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/ic_dialpad_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_dialpad_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/ic_more_vert_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_more_vert_white_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/app_icon.png b/app/src/main/res/drawable-mdpi/app_icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/ic_backspace_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_backspace_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/ic_call_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_call_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/ic_call_white_48dp.png b/app/src/main/res/drawable-mdpi/ic_call_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/ic_dialpad_white_48dp.png b/app/src/main/res/drawable-mdpi/ic_dialpad_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/ic_more_vert_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_more_vert_white_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/app_icon.png b/app/src/main/res/drawable-xhdpi/app_icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/ic_backspace_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_backspace_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/ic_call_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_call_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/ic_call_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_call_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/ic_dialpad_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_dialpad_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/ic_more_vert_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_more_vert_white_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/app_icon.png b/app/src/main/res/drawable-xxhdpi/app_icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/ic_backspace_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_backspace_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/ic_call_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_call_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/ic_call_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_call_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/ic_dialpad_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_dialpad_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/ic_more_vert_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_more_vert_white_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/app_icon.png b/app/src/main/res/drawable-xxxhdpi/app_icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_backspace_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_backspace_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_call_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_call_black_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_call_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_call_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_dialpad_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_dialpad_white_48dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_more_vert_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_more_vert_white_24dp.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable/splash.png b/app/src/main/res/drawable/splash.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/activity_dialpad.xml b/app/src/main/res/layout/activity_dialpad.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/activity_privacy.xml b/app/src/main/res/layout/activity_privacy.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/content_dialpad.xml b/app/src/main/res/layout/content_dialpad.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/digit_layout.xml b/app/src/main/res/layout/digit_layout.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/fragment_logs.xml b/app/src/main/res/layout/fragment_logs.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/fragment_predictions.xml b/app/src/main/res/layout/fragment_predictions.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/log_list_row.xml b/app/src/main/res/layout/log_list_row.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/layout/prediction_list_row.xml b/app/src/main/res/layout/prediction_list_row.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
old mode 100644
new mode 100755
index d68a3a7..1bd3cd4
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -2,15 +2,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.tobedecided.dynamicdialer.MainActivity">
-
+
+
+
+
+
-
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
old mode 100644
new mode 100755
index 77677ab..fb44d47
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -23,4 +23,10 @@
- @drawable/splash
+
+
diff --git a/app/src/test/java/com/tobedecided/dynamicdialer/ExampleUnitTest.java b/app/src/test/java/com/tobedecided/dynamicdialer/ExampleUnitTest.java
old mode 100644
new mode 100755
diff --git a/build.gradle b/build.gradle
old mode 100644
new mode 100755
index c20bca1..5311bd0
--- a/build.gradle
+++ b/build.gradle
@@ -3,9 +3,10 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.2.2'
+ classpath 'com.android.tools.build:gradle:3.0.0-beta6'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -15,6 +16,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
}
diff --git a/gradle.properties b/gradle.properties
old mode 100644
new mode 100755
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
old mode 100644
new mode 100755
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
old mode 100644
new mode 100755
index 04e285f..573c697
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Dec 28 10:00:20 PST 2015
+#Sun Oct 08 14:07:57 IST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/gradlew.bat b/gradlew.bat
old mode 100644
new mode 100755
diff --git a/settings.gradle b/settings.gradle
old mode 100644
new mode 100755