* Resolving merge conflict on bootstrap_data.json file.
|
@ -5,16 +5,16 @@ Description goes here..
|
|||
|
||||
<h2>Source</h2>
|
||||
|
||||
The source code in this repository reflects the app's current tatus'.
|
||||
The source code in this repository reflects the app's current status.
|
||||
|
||||
<h2>Features</h2>
|
||||
|
||||
With the app, you can:
|
||||
|
||||
- View the tutorial content.
|
||||
- View suggested topics based on system events like low battery; wifi, location or bluetooth status
|
||||
- View tutorial content.
|
||||
- View suggested topics based on system events like low battery; wifi, location or bluetooth status.
|
||||
- View detailed tutorial content.
|
||||
- Enable/disable app FAB
|
||||
- Enable/disable app FAB.
|
||||
|
||||
<h2>How to Work with the Source</h2>
|
||||
|
||||
|
|
60
app/app.iml
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Mozilla-DSO-Quiz-Application" external.system.module.version="0.1.3-SNAPSHOT" type="JAVA_MODULE" version="4">
|
||||
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Mozilla-DSO-Quiz-Application" external.system.module.version="0.1.5-SNAPSHOT" type="JAVA_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="android-gradle" name="Android-Gradle">
|
||||
<configuration>
|
||||
|
@ -32,7 +32,6 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/google-services/debug" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
|
||||
|
@ -65,14 +64,6 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
|
||||
|
@ -81,30 +72,27 @@
|
|||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/cardview-v7/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.4.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.github.douglasjunior/android-simple-tooltip/0.1.1/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics-impl/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-base/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-basement/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-tasks/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-analytics-impl/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-analytics/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-common/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-core/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-iid/9.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/org.sufficientlysecure/html-textview/1.6/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/pl.droidsonroids.gif/android-gif-drawable/1.1.16/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||
|
@ -129,33 +117,21 @@
|
|||
</content>
|
||||
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" exported="" name="firebase-iid-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-annotations-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="basic-http-client-android-0.88" level="project" />
|
||||
<orderEntry type="library" exported="" name="play-services-base-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="android-gif-drawable-1.1.16" level="project" />
|
||||
<orderEntry type="library" exported="" name="animated-vector-drawable-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-v4-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="recyclerview-v7-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-vector-drawable-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="otto-1.3.8" level="project" />
|
||||
<orderEntry type="library" exported="" name="firebase-common-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="firebase-core-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="html-textview-1.6" level="project" />
|
||||
<orderEntry type="library" exported="" name="appcompat-v7-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="design-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="guava-18.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="basic-http-client-android-0.88" level="project" />
|
||||
<orderEntry type="library" exported="" name="gson-2.4" level="project" />
|
||||
<orderEntry type="library" exported="" name="play-services-analytics-impl-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="play-services-analytics-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="play-services-basement-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="play-services-tasks-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="android-gif-drawable-1.1.16" level="project" />
|
||||
<orderEntry type="library" exported="" name="cardview-v7-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="firebase-analytics-impl-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="animated-vector-drawable-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-v13-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-v4-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
|
||||
<orderEntry type="library" exported="" name="android-simple-tooltip-0.1.1" level="project" />
|
||||
<orderEntry type="library" exported="" name="firebase-analytics-9.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-vector-drawable-23.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="otto-1.3.8" level="project" />
|
||||
<orderEntry type="library" exported="" name="html-textview-1.6" level="project" />
|
||||
<orderEntry type="library" exported="" name="appcompat-v7-23.4.0" level="project" />
|
||||
</component>
|
||||
</module>
|
|
@ -1,5 +1,4 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
|
@ -57,19 +56,23 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
// compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
// compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
testCompile 'junit:junit:4.12'
|
||||
// Event pubSub
|
||||
compile 'com.squareup:otto:1.3.8'
|
||||
|
||||
// Android support libraries.
|
||||
compile "com.android.support:appcompat-v7:${android_support_lib_version}"
|
||||
compile "com.android.support:cardview-v7:${android_support_lib_version}"
|
||||
compile "com.android.support:support-v13:${android_support_lib_version}"
|
||||
|
||||
// Event pubSub
|
||||
compile 'com.squareup:otto:1.3.8'
|
||||
|
||||
compile files('../third_party/basic-http-client/libs/basic-http-client-android-0.88.jar')
|
||||
// JSON utility library.
|
||||
compile 'com.google.code.gson:gson:2.4'
|
||||
compile "com.android.support:support-v13:${android_support_lib_version}"
|
||||
compile "com.android.support:design:${android_support_lib_version}"
|
||||
|
||||
compile 'com.github.douglasjunior:android-simple-tooltip:0.1.1'
|
||||
compile "com.google.android.gms:play-services-analytics:${google_play_services_client_library_version}"
|
||||
|
||||
compile 'com.google.guava:guava:18.0'
|
||||
// Helps with displaying complex html tags
|
||||
compile 'org.sufficientlysecure:html-textview:1.6'
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "430197134898",
|
||||
"project_id": "jisort-19d3a"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:430197134898:android:7183e408bcab61a5",
|
||||
"android_client_info": {
|
||||
"package_name": "com.mozilla.hackathon.kiboko"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyB0Itfqy-dhzlMYbVb3U0FD6skprIEga7w"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 2,
|
||||
"analytics_property": {
|
||||
"tracking_id": "UA-78929847-1"
|
||||
}
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -9,7 +9,7 @@ import com.squareup.otto.Bus;
|
|||
import com.squareup.otto.ThreadEnforcer;
|
||||
|
||||
/**
|
||||
* Created by Audrey on 06/06/2016.
|
||||
* Created by Brian Mwadime on 06/06/2016.
|
||||
*/
|
||||
public class App extends Application {
|
||||
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package com.mozilla.hackathon.kiboko.activities;
|
||||
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.mozilla.hackathon.kiboko.R;
|
||||
|
||||
import com.squareup.otto.Bus;
|
||||
|
||||
import com.mozilla.hackathon.kiboko.App;
|
||||
import com.mozilla.hackathon.kiboko.events.ApplicationStateChanged;
|
||||
import com.mozilla.hackathon.kiboko.services.DataBootstrapService;
|
||||
import com.squareup.otto.Bus;
|
||||
|
||||
/**
|
||||
* Created by Brian Mwadime on 06/06/2016.
|
||||
|
@ -23,6 +17,9 @@ public class DSOActivity extends AppCompatActivity {
|
|||
@Override
|
||||
protected void onResume()
|
||||
{
|
||||
DataBootstrapService.startDataBootstrapIfNecessary(this);
|
||||
bus.register(this);
|
||||
|
||||
App.getBus().post(new ApplicationStateChanged(true));
|
||||
super.onResume();
|
||||
System.out.println("Resume");
|
||||
|
@ -32,6 +29,7 @@ public class DSOActivity extends AppCompatActivity {
|
|||
protected void onPause()
|
||||
{
|
||||
App.getBus().post(new ApplicationStateChanged(false));
|
||||
bus.unregister(this);
|
||||
super.onPause();
|
||||
System.out.println("Pause");
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import android.support.annotation.Nullable;
|
|||
import android.support.v4.app.FragmentActivity;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.mozilla.hackathon.kiboko.App;
|
||||
import com.mozilla.hackathon.kiboko.R;
|
||||
|
@ -17,7 +16,6 @@ import com.mozilla.hackathon.kiboko.events.BatteryStateChanged;
|
|||
import com.mozilla.hackathon.kiboko.events.LocationStateChanged;
|
||||
import com.mozilla.hackathon.kiboko.events.LowstorageStateChanged;
|
||||
import com.mozilla.hackathon.kiboko.events.NetworkStateChanged;
|
||||
import com.mozilla.hackathon.kiboko.services.DataBootstrapService;
|
||||
import com.mozilla.hackathon.kiboko.widgets.MessageCardView;
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
@ -25,7 +23,7 @@ import com.squareup.otto.Subscribe;
|
|||
public class DashboardActivity extends DSOActivity {
|
||||
public static boolean active = false;
|
||||
public static FragmentActivity mDashboard;
|
||||
private String TAG = MainActivity.class.getSimpleName();
|
||||
private String TAG = DashboardActivity.class.getSimpleName();
|
||||
LinearLayout dashboard_summary;
|
||||
Bus bus = App.getBus();
|
||||
@Override
|
||||
|
@ -46,8 +44,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
protected void onResume()
|
||||
{
|
||||
super.onResume();
|
||||
DataBootstrapService.startDataBootstrapIfNecessary(this);
|
||||
bus.register(this);
|
||||
active = true;
|
||||
}
|
||||
|
||||
|
@ -55,7 +51,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
protected void onPause()
|
||||
{
|
||||
super.onPause();
|
||||
bus.unregister(this);
|
||||
active = true;
|
||||
}
|
||||
|
||||
|
@ -82,7 +77,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
wifiCard.setListener(new MessageCardView.OnMessageCardButtonClicked() {
|
||||
@Override
|
||||
public void onMessageCardButtonClicked(final String tag) {
|
||||
Toast.makeText(getApplicationContext(), tag, Toast.LENGTH_SHORT).show();
|
||||
wifiCard.dismiss(true);
|
||||
dashboard_summary.removeView(wifiCard);
|
||||
|
||||
|
@ -117,7 +111,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
wifiCard.setListener(new MessageCardView.OnMessageCardButtonClicked() {
|
||||
@Override
|
||||
public void onMessageCardButtonClicked(final String tag) {
|
||||
Toast.makeText(getApplicationContext(), tag, Toast.LENGTH_SHORT).show();
|
||||
wifiCard.dismiss(true);
|
||||
dashboard_summary.removeView(wifiCard);
|
||||
|
||||
|
@ -151,7 +144,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
batteryCard.setListener(new MessageCardView.OnMessageCardButtonClicked() {
|
||||
@Override
|
||||
public void onMessageCardButtonClicked(final String tag) {
|
||||
Toast.makeText(getApplicationContext(), tag, Toast.LENGTH_SHORT).show();
|
||||
batteryCard.dismiss(true);
|
||||
dashboard_summary.removeView(batteryCard);
|
||||
|
||||
|
@ -184,7 +176,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
batteryCard.setListener(new MessageCardView.OnMessageCardButtonClicked() {
|
||||
@Override
|
||||
public void onMessageCardButtonClicked(final String tag) {
|
||||
Toast.makeText(getApplicationContext(), tag, Toast.LENGTH_SHORT).show();
|
||||
batteryCard.dismiss(true);
|
||||
dashboard_summary.removeView(batteryCard);
|
||||
|
||||
|
@ -218,7 +209,6 @@ public class DashboardActivity extends DSOActivity {
|
|||
locationCard.setListener(new MessageCardView.OnMessageCardButtonClicked() {
|
||||
@Override
|
||||
public void onMessageCardButtonClicked(final String tag) {
|
||||
Toast.makeText(getApplicationContext(), tag, Toast.LENGTH_SHORT).show();
|
||||
locationCard.dismiss(true);
|
||||
dashboard_summary.removeView(locationCard);
|
||||
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
package com.mozilla.hackathon.kiboko.activities;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.mozilla.hackathon.kiboko.R;
|
||||
import com.mozilla.hackathon.kiboko.services.ChatHeadService;
|
||||
import com.mozilla.hackathon.kiboko.utilities.Utils;
|
||||
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
public static int OVERLAY_PERMISSION_REQ_CODE_CHATHEAD = 1234;
|
||||
public static int OVERLAY_PERMISSION_REQ_CODE_CHATHEAD_MSG = 5678;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
// if(Build.VERSION.SDK_INT >= 23) {
|
||||
// if (!Settings.canDrawOverlays(this)) {
|
||||
// Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
|
||||
// Uri.parse("package:" + getPackageName()));
|
||||
// startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE_CHATHEAD);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Intent intent = new Intent(this, ChatHeadService.class);
|
||||
// startService(intent);
|
||||
// }
|
||||
|
||||
if(Utils.canDrawOverlays(this))
|
||||
startChatHead();
|
||||
else{
|
||||
requestPermission(OVERLAY_PERMISSION_REQ_CODE_CHATHEAD);
|
||||
}
|
||||
|
||||
// Intent intent = new Intent(this, ChatHeadService.class);
|
||||
// startService(intent);
|
||||
finish();
|
||||
|
||||
}
|
||||
|
||||
private void startChatHead(){
|
||||
startService(new Intent(MainActivity.this, ChatHeadService.class));
|
||||
}
|
||||
|
||||
private void needPermissionDialog(final int requestCode){
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||
builder.setMessage("You need to allow permission");
|
||||
builder.setPositiveButton("OK",
|
||||
new android.content.DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
requestPermission(requestCode);
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton("Cancel", new android.content.DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
}
|
||||
});
|
||||
builder.setCancelable(false);
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private void requestPermission(int requestCode){
|
||||
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
||||
intent.setData(Uri.parse("package:" + getPackageName()));
|
||||
startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
if (requestCode == OVERLAY_PERMISSION_REQ_CODE_CHATHEAD) {
|
||||
if (!Utils.canDrawOverlays(MainActivity.this)) {
|
||||
needPermissionDialog(requestCode);
|
||||
}else{
|
||||
startChatHead();
|
||||
}
|
||||
|
||||
}else if(requestCode == OVERLAY_PERMISSION_REQ_CODE_CHATHEAD_MSG){
|
||||
if (!Utils.canDrawOverlays(MainActivity.this)) {
|
||||
needPermissionDialog(requestCode);
|
||||
}else{
|
||||
// showChatHeadMsg();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package com.mozilla.hackathon.kiboko.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class SplashActivity extends DSOActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Intent intent = new Intent(this, DashboardActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package com.mozilla.hackathon.kiboko.activities;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import com.mozilla.hackathon.kiboko.R;
|
||||
import com.mozilla.hackathon.kiboko.controls.TabsPagerAdapter;
|
||||
|
||||
public class TabLayoutActivity extends DSOActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_tab_layout);
|
||||
|
||||
TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
|
||||
ViewPager pager = (ViewPager) findViewById(R.id.pager);
|
||||
TabsPagerAdapter adapter = new TabsPagerAdapter(getSupportFragmentManager());
|
||||
|
||||
pager.setAdapter(adapter);
|
||||
tabs.setupWithViewPager(pager);
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
package com.mozilla.hackathon.kiboko.controls;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
|
||||
import com.mozilla.hackathon.kiboko.fragments.IconsFragment;
|
||||
import com.mozilla.hackathon.kiboko.fragments.TopicsFragment;
|
||||
|
||||
|
||||
public class TabsPagerAdapter extends FragmentPagerAdapter {
|
||||
private static int NUM_ITEMS = 2;
|
||||
public TabsPagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
switch (position) {
|
||||
case 0: // Fragment # 0 - This will show FirstFragment
|
||||
return TopicsFragment.newInstance();
|
||||
case 1: // Fragment # 0 - This will show FirstFragment different title
|
||||
return IconsFragment.newInstance();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Returns total number of pages
|
||||
@Override
|
||||
public int getCount() {
|
||||
return NUM_ITEMS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return "TAB " + (position + 1);
|
||||
}
|
||||
}
|
|
@ -173,6 +173,8 @@ public class ChatHeadService extends Service {
|
|||
private void dragTray(int action, int x, int y) {
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
pressStartTime = System.currentTimeMillis();
|
||||
stayedWithinClickDistance = true;
|
||||
// Cancel any currently running animations/automatic tray movements.
|
||||
if (mTrayTimerTask != null) {
|
||||
mTrayTimerTask.cancel();
|
||||
|
@ -214,11 +216,6 @@ public class ChatHeadService extends Service {
|
|||
break;
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
|
||||
// When the tray is released, bring it back to "open" or "closed" state.
|
||||
if ((mIsTrayOpen && (x - mStartDragX) <= 0) ||
|
||||
(!mIsTrayOpen && (x - mStartDragX) >= 0))
|
||||
mIsTrayOpen = !mIsTrayOpen;
|
||||
|
||||
mTrayTimerTask = new TrayAnimationTimerTask();
|
||||
mTrayAnimationTimer = new Timer();
|
||||
mTrayAnimationTimer.schedule(mTrayTimerTask, 0, ANIMATION_FRAME_RATE);
|
||||
|
@ -234,10 +231,6 @@ public class ChatHeadService extends Service {
|
|||
final int action = event.getActionMasked();
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
pressedX = event.getX();
|
||||
pressedY = event.getY();
|
||||
pressStartTime = System.currentTimeMillis();
|
||||
stayedWithinClickDistance = true;
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
case MotionEvent.ACTION_UP:
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
|
@ -268,8 +261,7 @@ public class ChatHeadService extends Service {
|
|||
DisplayMetrics metrics = calculateDisplayMetrics();
|
||||
int width = metrics.widthPixels - mRootLayout.getWidth();
|
||||
int height = metrics.heightPixels - mRootLayout.getHeight();
|
||||
// if (mRootLayoutParams.x >= width)
|
||||
// mRootLayoutParams.x = (width * 2) - 10;
|
||||
|
||||
if (mRootLayoutParams.x >= width)
|
||||
mRootLayoutParams.x = width - mRootLayout.getWidth();
|
||||
|
||||
|
|
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_black_18dp.png
До Ширина: | Высота: | Размер: 270 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_black_24dp.png
До Ширина: | Высота: | Размер: 351 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_black_36dp.png
До Ширина: | Высота: | Размер: 547 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_black_48dp.png
До Ширина: | Высота: | Размер: 706 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_white_18dp.png
До Ширина: | Высота: | Размер: 293 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_white_24dp.png
До Ширина: | Высота: | Размер: 381 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_white_36dp.png
До Ширина: | Высота: | Размер: 582 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_3d_rotation_white_48dp.png
До Ширина: | Высота: | Размер: 738 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_black_18dp.png
До Ширина: | Высота: | Размер: 322 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_black_24dp.png
До Ширина: | Высота: | Размер: 388 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_black_36dp.png
До Ширина: | Высота: | Размер: 610 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_black_48dp.png
До Ширина: | Высота: | Размер: 798 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_white_18dp.png
До Ширина: | Высота: | Размер: 336 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_white_24dp.png
До Ширина: | Высота: | Размер: 403 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_white_36dp.png
До Ширина: | Высота: | Размер: 610 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarm_white_48dp.png
До Ширина: | Высота: | Размер: 821 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_black_18dp.png
До Ширина: | Высота: | Размер: 317 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_black_24dp.png
До Ширина: | Высота: | Размер: 380 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_black_36dp.png
До Ширина: | Высота: | Размер: 612 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_black_48dp.png
До Ширина: | Высота: | Размер: 799 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_white_18dp.png
До Ширина: | Высота: | Размер: 331 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_white_24dp.png
До Ширина: | Высота: | Размер: 396 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_white_36dp.png
До Ширина: | Высота: | Размер: 612 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_alarms_white_48dp.png
До Ширина: | Высота: | Размер: 818 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_black_18dp.png
До Ширина: | Высота: | Размер: 284 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_black_24dp.png
До Ширина: | Высота: | Размер: 347 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_black_36dp.png
До Ширина: | Высота: | Размер: 531 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_black_48dp.png
До Ширина: | Высота: | Размер: 687 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_white_18dp.png
До Ширина: | Высота: | Размер: 297 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_white_24dp.png
До Ширина: | Высота: | Размер: 350 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_white_36dp.png
До Ширина: | Высота: | Размер: 523 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_access_time_white_48dp.png
До Ширина: | Высота: | Размер: 684 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_black_18dp.png
До Ширина: | Высота: | Размер: 135 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_black_24dp.png
До Ширина: | Высота: | Размер: 120 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_black_36dp.png
До Ширина: | Высота: | Размер: 163 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_black_48dp.png
До Ширина: | Высота: | Размер: 163 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_white_18dp.png
До Ширина: | Высота: | Размер: 139 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_white_24dp.png
До Ширина: | Высота: | Размер: 124 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_white_36dp.png
До Ширина: | Высота: | Размер: 167 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessibility_white_48dp.png
До Ширина: | Высота: | Размер: 166 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_black_18dp.png
До Ширина: | Высота: | Размер: 251 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_black_24dp.png
До Ширина: | Высота: | Размер: 254 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_black_36dp.png
До Ширина: | Высота: | Размер: 400 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_black_48dp.png
До Ширина: | Высота: | Размер: 461 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_white_18dp.png
До Ширина: | Высота: | Размер: 250 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_white_24dp.png
До Ширина: | Высота: | Размер: 251 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_white_36dp.png
До Ширина: | Высота: | Размер: 396 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_accessible_white_48dp.png
До Ширина: | Высота: | Размер: 451 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_black_18dp.png
До Ширина: | Высота: | Размер: 182 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_black_24dp.png
До Ширина: | Высота: | Размер: 156 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_black_36dp.png
До Ширина: | Высота: | Размер: 216 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_black_48dp.png
До Ширина: | Высота: | Размер: 235 B |
До Ширина: | Высота: | Размер: 164 B |
До Ширина: | Высота: | Размер: 164 B |
До Ширина: | Высота: | Размер: 222 B |
До Ширина: | Высота: | Размер: 243 B |
До Ширина: | Высота: | Размер: 167 B |
До Ширина: | Высота: | Размер: 173 B |
До Ширина: | Высота: | Размер: 235 B |
До Ширина: | Высота: | Размер: 252 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_white_18dp.png
До Ширина: | Высота: | Размер: 188 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_white_24dp.png
До Ширина: | Высота: | Размер: 158 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_white_36dp.png
До Ширина: | Высота: | Размер: 216 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_balance_white_48dp.png
До Ширина: | Высота: | Размер: 240 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_black_18dp.png
До Ширина: | Высота: | Размер: 157 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_black_24dp.png
До Ширина: | Высота: | Размер: 201 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_black_36dp.png
До Ширина: | Высота: | Размер: 241 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_black_48dp.png
До Ширина: | Высота: | Размер: 328 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_white_18dp.png
До Ширина: | Высота: | Размер: 160 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_white_24dp.png
До Ширина: | Высота: | Размер: 207 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_white_36dp.png
До Ширина: | Высота: | Размер: 252 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_box_white_48dp.png
До Ширина: | Высота: | Размер: 342 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_black_18dp.png
До Ширина: | Высота: | Размер: 266 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_black_24dp.png
До Ширина: | Высота: | Размер: 331 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_black_36dp.png
До Ширина: | Высота: | Размер: 495 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_black_48dp.png
До Ширина: | Высота: | Размер: 633 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_white_18dp.png
До Ширина: | Высота: | Размер: 270 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_white_24dp.png
До Ширина: | Высота: | Размер: 331 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_white_36dp.png
До Ширина: | Высота: | Размер: 496 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_account_circle_white_48dp.png
До Ширина: | Высота: | Размер: 632 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_black_18dp.png
До Ширина: | Высота: | Размер: 252 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_black_24dp.png
До Ширина: | Высота: | Размер: 236 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_black_36dp.png
До Ширина: | Высота: | Размер: 376 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_black_48dp.png
До Ширина: | Высота: | Размер: 429 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_white_18dp.png
До Ширина: | Высота: | Размер: 254 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_white_24dp.png
До Ширина: | Высота: | Размер: 240 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_white_36dp.png
До Ширина: | Высота: | Размер: 382 B |
Двоичные данные
app/src/main/res/drawable-mdpi/ic_add_a_photo_white_48dp.png
До Ширина: | Высота: | Размер: 434 B |