Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MptTheme">
android:theme="@style/MptTheme"
tools:ignore="GoogleAppIndexingWarning">

<activity
android:name=".main.MainActivity"
Expand Down Expand Up @@ -124,6 +125,15 @@
android:exported="true"
android:writePermission="${applicationId}.permission.WRITE_PRAYER_DATA" />

<provider
android:name=".widget.KwgtProvider"
android:authorities="${applicationId}.provider.kwgt"
android:exported="true">
<intent-filter>
<action android:name="org.kustom.provider.SAMPLES" />
</intent-filter>
</provider>

<receiver android:name=".settings.CodeReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
Expand Down Expand Up @@ -230,6 +240,8 @@

<service android:name=".main.MainService" />

<service android:name=".widget.KwgtService" />

<service android:name=".widget.WidgetService" />

<meta-data
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/com/i906/mpt/internal/ServiceGraph.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.i906.mpt.alarm.AlarmService;
import com.i906.mpt.main.MainService;
import com.i906.mpt.widget.DashClockService;
import com.i906.mpt.widget.KwgtService;
import com.i906.mpt.widget.WidgetService;

import dagger.Subcomponent;
Expand All @@ -17,6 +18,7 @@
public interface ServiceGraph {
void inject(AlarmService service);
void inject(DashClockService service);
void inject(KwgtService service);
void inject(MainService service);
void inject(WidgetService service);
}
33 changes: 32 additions & 1 deletion app/src/main/java/com/i906/mpt/prayer/PrayerBroadcaster.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;

import com.i906.mpt.extension.Extension;
import com.i906.mpt.prefs.NotificationPreferences;
import com.i906.mpt.widget.KwgtService;
import com.i906.mpt.widget.WidgetService;

import javax.inject.Inject;
Expand All @@ -16,15 +19,43 @@
public class PrayerBroadcaster {

private final Context mContext;
private final NotificationPreferences mPreferences;

@Inject
public PrayerBroadcaster(Context context) {
public PrayerBroadcaster(Context context, NotificationPreferences prefs) {
mContext = context;
mPreferences = prefs;
}

public void sendPrayerUpdatedBroadcast() {
mContext.sendBroadcast(new Intent(Extension.ACTION_PRAYER_CONTEXT_UPDATED));
mContext.getContentResolver().update(Extension.PRAYER_CONTEXT_URI, null, null, null);
WidgetService.start(mContext);

if (isKustomInstalled() && mPreferences.isKwgtEnabled()) {
KwgtService.start(mContext);
}
}

private boolean isKustomInstalled() {
PackageManager pm = mContext.getPackageManager();

String[] kustom = new String[] {
"org.kustom.lockscreen",
"org.kustom.wallpaper",
"org.kustom.watch",
"org.kustom.widget"
};

for (String k : kustom) {
try {
pm.getPackageInfo(k, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
//
}
}

return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ public boolean isHeadsUpEnabled() {
return mPrefs.getBoolean("prayer_headsup", false);
}

public boolean isKwgtEnabled() {
return mPrefs.getBoolean("kwgt_enabled", true);
}

public void convertLegacyPreferences() {
String nb = mPrefs.getString("notf_before", null);
String na = mPrefs.getString("notf_after", null);
Expand Down
56 changes: 47 additions & 9 deletions app/src/main/java/com/i906/mpt/settings/MoreFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.support.design.widget.Snackbar;
import android.view.View;

import com.i906.mpt.R;
import com.i906.mpt.analytics.AnalyticsProvider;
import com.i906.mpt.internal.Dagger;
import com.i906.mpt.widget.DashClockService;
import com.i906.mpt.widget.KwgtService;

import javax.inject.Inject;

Expand All @@ -33,17 +35,17 @@ public void onCreate(Bundle savedInstanceState) {
activityGraph().inject(this);

Preference advanced = findPreference("advanced_settings");
advanced.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
HiddenSettingsActivity.start(getActivity());
return true;
}
});

if (!Dagger.getGraph(getActivity()).getHiddenPreferences().isVisible()) {
getPreferenceScreen().removePreference(advanced);
} else {
advanced.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
HiddenSettingsActivity.start(getActivity());
return true;
}
});
PreferenceCategory cat = (PreferenceCategory) findPreference("pref_others");
cat.removePreference(advanced);
}

Preference dashclock = findPreference("dashclock_visibility");
Expand All @@ -56,6 +58,20 @@ public boolean onPreferenceClick(Preference preference) {
}
});

Preference kwgt = findPreference("kwgt_enabled");

if (!isKustomInstalled()) {
kwgt.setEnabled(false);
}

kwgt.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
KwgtService.start(getActivity());
return true;
}
});

SettingsActivity.bindPreferenceSummaryToValue(dashclock);
SettingsActivity.bindPreferenceSummaryToValue(findPreference("hijri_offset"));

Expand Down Expand Up @@ -138,4 +154,26 @@ private boolean isAppInstalled(String packageName) {

return false;
}

private boolean isKustomInstalled() {
PackageManager pm = getActivity().getPackageManager();

String[] kustom = new String[] {
"org.kustom.lockscreen",
"org.kustom.wallpaper",
"org.kustom.watch",
"org.kustom.widget"
};

for (String k : kustom) {
try {
pm.getPackageInfo(k, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
//
}
}

return false;
}
}
76 changes: 76 additions & 0 deletions app/src/main/java/com/i906/mpt/widget/KwgtProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.i906.mpt.widget;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

/**
* @author Noorzaini Ilhami
*/
public class KwgtProvider extends ContentProvider {

@Override
public boolean onCreate() {
return false;
}

@Nullable
@Override
public Cursor query(
@NonNull Uri uri,
@Nullable String[] projection,
@Nullable String selection,
@Nullable String[] selectionArgs,
@Nullable String sortOrder) {

MatrixCursor c = new MatrixCursor(new String[]{"Kode", "Description"});

c.addRow(new String[]{"$br(mpt, loc)$", "Current location"});
c.addRow(new String[]{"$br(mpt, cpi)$", "Current prayer index"});
c.addRow(new String[]{"$br(mpt, cpn)$", "Current prayer name"});
c.addRow(new String[]{"$df(hh:mm a, br(mpt, cpt))$", "Current prayer time"});
c.addRow(new String[]{"$br(mpt, npi)$", "Next prayer index"});
c.addRow(new String[]{"$br(mpt, npn)$", "Next prayer name"});
c.addRow(new String[]{"$df(hh:mm a, br(mpt, npt))$", "Next prayer time"});
c.addRow(new String[]{"$br(mpt, npn)$ in $tf(br(mpt, npt), M)$ minutes", "Minutes till next prayer"});
c.addRow(new String[]{"$df(hh:mm a, br(mpt, pt1))$", "Current Subuh time"});
c.addRow(new String[]{"$df(hh:mm a, br(mpt, pt4))$", "Current Zohor time"});
c.addRow(new String[]{"$br(mpt, slm)$", "Last status message"});
c.addRow(new String[]{"$df(hh:mm:ss a, br(mpt, slu))$", "Last status update"});

return c;
}

@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}

@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
return null;
}

@Override
public int delete(
@NonNull Uri uri,
@Nullable String selection,
@Nullable String[] selectionArgs) {
return 0;
}

@Override
public int update(
@NonNull Uri uri,
@Nullable ContentValues values,
@Nullable String selection,
@Nullable String[] selectionArgs) {
return 0;
}
}
Loading