Skip to content

Commit c37eab5

Browse files
committed
Alarm, Calendar, Contact, Browser, Calculator are ready for development.
1 parent 23468ec commit c37eab5

File tree

6 files changed

+59
-76
lines changed

6 files changed

+59
-76
lines changed

Library/src/main/java/com/next/androidintentlibrary/AlarmIntents.java

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ public static AlarmIntents from(@NonNull Context context)
2424
return new AlarmIntents(context);
2525
}
2626

27-
// NOTE: requires com.android.alarm.permission.SET_ALARM permission
2827
public AlarmIntents createAlarm(String message, int hour, int minutes, boolean skipUi)
2928
{
30-
// create alarm
3129
intent = new Intent(AlarmClock.ACTION_SET_ALARM);
3230
intent.putExtra(AlarmClock.EXTRA_MESSAGE, message);
3331
intent.putExtra(AlarmClock.EXTRA_HOUR, hour);
@@ -36,43 +34,33 @@ public AlarmIntents createAlarm(String message, int hour, int minutes, boolean s
3634
return this;
3735
}
3836

39-
// NOTE: requires com.android.alarm.permission.SET_ALARM permission
40-
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
41-
public AlarmIntents createAlarm(String message, int hour, int minutes, boolean vibrate, boolean skipUi)
37+
public AlarmIntents createAlarm(String message, int hour, int minutes, boolean skipUi, boolean vibrate)
4238
{
43-
// create alarm
4439
intent = new Intent(AlarmClock.ACTION_SET_ALARM);
4540
intent.putExtra(AlarmClock.EXTRA_MESSAGE, message);
4641
intent.putExtra(AlarmClock.EXTRA_HOUR, hour);
4742
intent.putExtra(AlarmClock.EXTRA_MINUTES, minutes);
48-
4943
intent.putExtra(AlarmClock.EXTRA_VIBRATE, vibrate);
50-
// TODO: intent.putExtra(AlarmClock.EXTRA_DAYS, days);
51-
// TODO: intent.putExtra(AlarmClock.EXTRA_RINGTONE, ringtone);
52-
5344
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, skipUi);
5445
return this;
5546
}
5647

57-
// NOTE: requires com.android.alarm.permission.SET_ALARM permission
5848
@RequiresApi(api = Build.VERSION_CODES.M)
59-
public AlarmIntents createAlarm(String message, int hour, int minutes, boolean vibrate, boolean isPm, boolean skipUi)
49+
public AlarmIntents createAlarm(String message, int hour, int minutes, boolean skipUi, boolean vibrate, boolean isPm)
6050
{
61-
// create alarm
6251
intent = new Intent(AlarmClock.ACTION_SET_ALARM);
6352
intent.putExtra(AlarmClock.EXTRA_MESSAGE, message);
6453
intent.putExtra(AlarmClock.EXTRA_HOUR, hour);
6554
intent.putExtra(AlarmClock.EXTRA_MINUTES, minutes);
66-
6755
intent.putExtra(AlarmClock.EXTRA_VIBRATE, vibrate);
68-
// TODO: intent.putExtra(AlarmClock.EXTRA_DAYS, days);
69-
// TODO: intent.putExtra(AlarmClock.EXTRA_RINGTONE, ringtone);
7056
intent.putExtra(AlarmClock.EXTRA_IS_PM, isPm);
7157
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, skipUi);
58+
// TODO: add below overloads too
59+
// intent.putExtra(AlarmClock.EXTRA_DAYS, days);
60+
// intent.putExtra(AlarmClock.EXTRA_RINGTONE, ringtone);
7261
return this;
7362
}
7463

75-
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
7664
public AlarmIntents showAlarms()
7765
{
7866
intent = new Intent(AlarmClock.ACTION_SHOW_ALARMS);

Library/src/main/java/com/next/androidintentlibrary/CalendarIntents.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,6 @@ public CalendarIntents openCalendar()
3030
return this;
3131
}
3232

33-
public CalendarIntents createEvent(String title, String description)
34-
{
35-
intent = new Intent(Intent.ACTION_EDIT);
36-
intent.setType("vnd.android.cursor.item/event");
37-
intent.putExtra("title", title);
38-
intent.putExtra("description", description);
39-
return this;
40-
}
41-
4233
public Intent build()
4334
{
4435
return intent;

Library/src/main/java/com/next/androidintentlibrary/ContactIntents.java

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.next.androidintentlibrary;
22

33
import android.app.Activity;
4-
import android.content.ActivityNotFoundException;
54
import android.content.ContentUris;
65
import android.content.Context;
76
import android.content.Intent;
@@ -10,15 +9,9 @@
109
import android.provider.ContactsContract;
1110

1211
import androidx.annotation.NonNull;
13-
import androidx.appcompat.app.AppCompatActivity;
14-
15-
import android.text.TextUtils;
16-
import android.widget.Toast;
1712

1813
public class ContactIntents
1914
{
20-
public static final int REQUEST_SELECT_CONTACT = 5;
21-
public static final int REQUEST_SELECT_PHONE_NUMBER = 6;
2215
private Context context;
2316
private Intent intent;
2417

@@ -41,24 +34,24 @@ public ContactIntents openContacts()
4134
return this;
4235
}
4336

44-
// TODO: requires start activity for result, on activity result, should only be used with build not show
45-
public void selectContact()
37+
public ContactIntents pickContact()
4638
{
47-
Intent intent = new Intent(Intent.ACTION_PICK);
39+
intent = new Intent(Intent.ACTION_PICK);
4840
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
49-
if (intent.resolveActivity(context.getPackageManager()) == null)
50-
Toast.makeText(context, "No Activity Was Found To Handle This Intent", Toast.LENGTH_LONG).show();
51-
else
52-
((AppCompatActivity) context).startActivityForResult(intent, REQUEST_SELECT_CONTACT);
41+
// or
42+
// intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
43+
return this;
5344
}
5445

55-
// TODO: requires start activity for result, on activity result, should only be used with build not show
56-
public ContactIntents selectSpecificContactData()
46+
public ContactIntents pickSpecificContactData()
5747
{
5848
intent = new Intent(Intent.ACTION_PICK);
5949
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
6050
//intent.setType(ContactsContract.CommonDataKinds.Email.CONTENT_TYPE);
6151
//intent.setType(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_TYPE);
52+
53+
// or
54+
// intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://com.android.contacts/contacts"));
6255
return this;
6356
}
6457

@@ -118,26 +111,6 @@ private Uri getUriOfContactByName(String name)
118111
return contactUri;
119112
}
120113

121-
// TODO: requires start activity for result, on activity result, should only be used with build not show
122-
public ContactIntents pickContact()
123-
{
124-
intent = new Intent(Intent.ACTION_PICK);
125-
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
126-
return this;
127-
}
128-
129-
// TODO: requires start activity for result, on activity result, should only be used with build not show
130-
public ContactIntents pickContact(String scope)
131-
{
132-
intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://com.android.contacts/contacts"));
133-
134-
if (!TextUtils.isEmpty(scope))
135-
{
136-
intent.setType(scope);
137-
}
138-
return this;
139-
}
140-
141114
public Intent build()
142115
{
143116
return intent;

Library/src/main/java/com/next/androidintentlibrary/EventIntents.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ public static EventIntents from(@NonNull Context context)
2323
return new EventIntents(context);
2424
}
2525

26+
public EventIntents createEvent(String title, String description)
27+
{
28+
intent = new Intent(Intent.ACTION_EDIT);
29+
intent.setType("vnd.android.cursor.item/event");
30+
intent.putExtra("title", title);
31+
intent.putExtra("description", description);
32+
return this;
33+
}
34+
2635
public EventIntents createEvent(String title, String description, String location, long begin, long end, int color, boolean allDay)
2736
{
2837
intent = new Intent(Intent.ACTION_INSERT);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.next.androidintentlibrary;
2+
3+
public class RequestTag
4+
{
5+
public static final int PICK_CONTACT = 1001;
6+
public static final int PICK_SPECIFIC_CONTACT_DATA = 1002;
7+
}

Sample/src/main/java/com/next/androidintents/MainActivity.java

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.next.androidintents;
22

3-
import androidx.annotation.RequiresApi;
3+
import androidx.annotation.Nullable;
44
import androidx.appcompat.app.AppCompatActivity;
55

66
import android.content.ContentUris;
@@ -11,6 +11,7 @@
1111
import android.os.Build;
1212
import android.os.Bundle;
1313
import android.provider.ContactsContract;
14+
import android.util.Log;
1415

1516
import com.next.androidintentlibrary.AlarmIntents;
1617
import com.next.androidintentlibrary.BrowserIntents;
@@ -22,6 +23,7 @@
2223
import com.next.androidintentlibrary.GalleryIntents;
2324
import com.next.androidintentlibrary.MarketIntents;
2425
import com.next.androidintentlibrary.PhoneIntents;
26+
import com.next.androidintentlibrary.RequestTag;
2527
import com.next.androidintentlibrary.SettingIntents;
2628
import com.next.androidintentlibrary.ShareIntents;
2729
import com.next.androidintentlibrary.TimerIntents;
@@ -30,8 +32,6 @@
3032

3133
public class MainActivity extends AppCompatActivity
3234
{
33-
34-
@RequiresApi(api = Build.VERSION_CODES.M)
3535
@Override
3636
protected void onCreate(Bundle savedInstanceState)
3737
{
@@ -40,8 +40,9 @@ protected void onCreate(Bundle savedInstanceState)
4040

4141
// Alarm
4242
// AlarmIntents.from(this).showAlarms().show();
43-
// AlarmIntents.from(this).createAlarm("Wake up", 6, 30, false, false).show();
44-
// AlarmIntents.from(this).createAlarm("Wake up", 6, 30, false, false, false).show();
43+
// AlarmIntents.from(this).createAlarm("Wake up", 6, 30, false).show(); // NOTE: requires com.android.alarm.permission.SET_ALARM
44+
// AlarmIntents.from(this).createAlarm("Wake up", 6, 30, false, false).show(); // NOTE: requires com.android.alarm.permission.SET_ALARM
45+
// AlarmIntents.from(this).createAlarm("Wake up", 6, 30, false, false, false).show(); // NOTE: requires com.android.alarm.permission.SET_ALARM
4546

4647
// Browser
4748
// BrowserIntents.from(this).openBrowser().show();
@@ -54,18 +55,17 @@ protected void onCreate(Bundle savedInstanceState)
5455

5556
// Calendar
5657
// CalendarIntents.from(this).openCalendar().show();
57-
// CalendarIntents.from(this).createEvent("Movie","Watch Avenger End Games").show();
5858

5959
// Camera (TODO: test)
6060

6161
// Contact
6262
// ContactIntents.from(this).openContacts().show();
63-
// ContactIntents.from(this).viewContact("Ahmad").show();
64-
// ContactIntents.from(this).insertContact("Emiley", "0913234235", "", "", "", "").show();
65-
// ContactIntents.from(this).editContact("Ahmad").show();
66-
// ContactIntents.from(this).editContact("Ahmad", "a2bad@gmail.com").show();
67-
// ContactIntents.from(this).pickContact().show();
68-
// ContactIntents.from(this).pickContact(null).show();
63+
// ContactIntents.from(this).viewContact("Ahmad").show(); // Note: requires android.permission.READ_CONTACTS
64+
// ContactIntents.from(this).insertContact("Emiley", "0913234235", "", "", "", "").show(); // Note: requires android.permission.WRITE_CONTACTS
65+
// ContactIntents.from(this).editContact("Ahmad").show(); // Note: requires android.permission.WRITE_CONTACTS
66+
// ContactIntents.from(this).editContact("Ahmad", "a2bad@gmail.com").show(); // Note: requires android.permission.WRITE_CONTACTS
67+
// startActivityForResult(ContactIntents.from(this).pickContact().build(), RequestTag.PICK_CONTACT);
68+
// startActivityForResult(ContactIntents.from(this).pickSpecificContactData().build(), RequestTag.PICK_SPECIFIC_CONTACT_DATA);
6969

7070
// Email
7171
// EmailIntents.from(this).openEmail().show();
@@ -74,6 +74,7 @@ protected void onCreate(Bundle savedInstanceState)
7474
// EmailIntents.from(this).composeAnEmailSend(new String[]{"a2bad@gmail.com"}, new String[]{"a3bad@gmail.com"}, new String[]{"a4bad@gmail.com"}, "Work", "Please send your resume").show();
7575

7676
// Event
77+
// EventIntents.from(this).createEvent("Movie","Watch Avenger End Games").show();
7778
// EventIntents.from(this).createEvent("Birthday", "Buy a cake", "UK", 3600, 7200, Color.BLUE, true).show();
7879

7980
// File (TODO: test)
@@ -122,8 +123,7 @@ protected void onCreate(Bundle savedInstanceState)
122123
// SettingIntents.from(this).accessibilitySetting().show();
123124
// SettingIntents.from(this).applicationSetting().show();
124125
// SettingIntents.from(this).airplaneModeSetting().show();
125-
// Warning: requires bluetooth permission
126-
// SettingIntents.from(this).bluetoothSetting().show();
126+
// SettingIntents.from(this).bluetoothSetting().show(); // Note: requires android.permission.BLUETOOTH_ADMIN permission
127127
// SettingIntents.from(this).captioningSetting().show();
128128
// SettingIntents.from(this).castSetting().show();
129129
// SettingIntents.from(this).dateSetting().show();
@@ -179,4 +179,19 @@ protected void onCreate(Bundle savedInstanceState)
179179
// TimerIntents.from(this).createTimer("Run", 200, false).show();
180180

181181
}
182+
183+
@Override
184+
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
185+
{
186+
super.onActivityResult(requestCode, resultCode, data);
187+
switch (requestCode)
188+
{
189+
case RequestTag.PICK_CONTACT:
190+
Log.i("Android-Intent-Library", "Picked Contact");
191+
break;
192+
case RequestTag.PICK_SPECIFIC_CONTACT_DATA:
193+
Log.i("Android-Intent-Library", "Picked Specific Contact Data");
194+
break;
195+
}
196+
}
182197
}

0 commit comments

Comments
 (0)