package com.ptrprograms.notifications;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
public class MainActivity extends Activity {
private Button mNotificationBuildButton;
private EditText mNotificationTitleEditText;
private EditText mNotificationTextEditText;
private EditText mNotificationSubEditText;
private EditText mNotificationTickerEditText;
private EditText mNotificationInfoEditText;
private CheckBox mNotificationLargeCheckBox;
private CheckBox mNotificationSoundCheckBox;
private CheckBox mNotificationShowChronometerCheckBox;
private CheckBox mNotificationVibrationCheckBox;
private CheckBox mNotificationUseIntent;
private CheckBox mNotificationBigPictureStyleCheckBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
mNotificationBuildButton = (Button) findViewById( R.id.notification_build );
mNotificationTitleEditText = (EditText) findViewById( R.id.notification_title );
mNotificationTextEditText = (EditText) findViewById( R.id.notification_text );
mNotificationSubEditText = (EditText) findViewById( R.id.notification_sub );
mNotificationTickerEditText = (EditText) findViewById( R.id.notification_ticker );
mNotificationInfoEditText = (EditText) findViewById( R.id.notification_info );
mNotificationLargeCheckBox = (CheckBox) findViewById( R.id.notification_use_large_icon );
mNotificationSoundCheckBox = (CheckBox) findViewById( R.id.notification_use_sound );
mNotificationShowChronometerCheckBox = (CheckBox) findViewById( R.id.notification_use_chronometer );
mNotificationVibrationCheckBox = (CheckBox) findViewById( R.id.notification_use_vibration );
mNotificationUseIntent = (CheckBox) findViewById( R.id.notification_use_intent );
mNotificationBigPictureStyleCheckBox = (CheckBox) findViewById( R.id.notification_use_big_picture );
mNotificationBuildButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
buildNotification();
}
});
}
private void buildNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
if ( !TextUtils.isEmpty(mNotificationTitleEditText.getText() ) ) {
builder.setContentTitle(mNotificationTitleEditText.getText());
} else {
builder.setContentTitle(getString(R.string.app_name));
}
if( !TextUtils.isEmpty( mNotificationTextEditText.getText() ) ) {
builder.setContentText(mNotificationTextEditText.getText());
} else {
builder.setContentText( getString(R.string.app_name) );
}
builder.setSmallIcon( R.drawable.ic_launcher );
if( !TextUtils.isEmpty( mNotificationInfoEditText.getText() ) )
builder.setContentInfo( mNotificationInfoEditText.getText() );
if( !TextUtils.isEmpty( mNotificationSubEditText.getText() ) )
builder.setSubText(mNotificationSubEditText.getText());
if( !TextUtils.isEmpty( mNotificationTickerEditText.getText() ) )
builder.setTicker(mNotificationTickerEditText.getText());
if( mNotificationLargeCheckBox.isChecked() )
builder.setLargeIcon(BitmapFactory.decodeResource( this.getResources(), R.drawable.ic_launcher ) );
if( mNotificationSoundCheckBox.isChecked() )
builder.setSound( RingtoneManager.getDefaultUri( RingtoneManager.TYPE_NOTIFICATION ) );
if( mNotificationShowChronometerCheckBox.isChecked() )
builder.setUsesChronometer( true );
if( mNotificationVibrationCheckBox.isChecked() )
builder.setVibrate( new long[]{ 0, 500, 250, 500 } );
if( mNotificationUseIntent.isChecked() ) {
Intent intent = new Intent( this, MainActivity.class );
TaskStackBuilder stackBuilder = TaskStackBuilder.create( this );
stackBuilder.addNextIntent( intent );
PendingIntent resultIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent( resultIntent );
builder.setAutoCancel( true );
}
if( mNotificationBigPictureStyleCheckBox.isChecked() ) {
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
style.bigPicture(BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher));
builder.setStyle(style);
}
NotificationManager manager = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE );
manager.notify( 1, builder.build() );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}