Android Open Source - KendaliPintuAndroid Common Utilities






From Project

Back to project page KendaliPintuAndroid.

License

The source code is released under:

GNU General Public License

If you think the Android project KendaliPintuAndroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright (c) 2014 Dimas Rullyan Danu
 * /*from  ww  w.j  av a  2 s . c o m*/
 * Kendali Pintu is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Kendali Pintu is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Kendali Pintu. If not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************/
package com.dimasdanz.kendalipintu.util;

import com.dimasdanz.kendalipintu.LogActivity;
import com.dimasdanz.kendalipintu.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v4.app.TaskStackBuilder;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.StyleSpan;

public final class CommonUtilities {
  private static int msgCounter = 0;
  private static Spannable[] name = new Spannable[6];
  
  public static void dialogConnectionError(final Context context){
    AlertDialog.Builder builder = new AlertDialog.Builder(context, 4);
    builder.setIcon(android.R.drawable.ic_dialog_info);
      builder.setTitle(R.string.title_dialog_server_error);
      builder.setMessage(R.string.message_dialog_connection_error);
      builder.setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int id) {
            Activity a = (Activity) context;
            a.finish();
          }
        });
      AlertDialog alert = builder.create();
      alert.show();
  }
  
  public static void resetNotificationCounter(){
    name = new Spannable[6];
    msgCounter = 0;
    
  }
  
  public static void generateNotification(Context context, String message, String time, String info){
    try {
      NotificationManager manager;
      int notificationID = 73;
      
      Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_stat_notification);
      
      Notification.Builder builder = new Notification.Builder(context);
      Intent resultIntent = new Intent(context, LogActivity.class);    
      TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
      
      stackBuilder.addParentStack(LogActivity.class);
      stackBuilder.addNextIntent(resultIntent );
      
      PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
      Spannable sb = new SpannableString(message+" "+time+"-"+info);
      sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, message.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      
      builder.setAutoCancel(true);
      builder.setDefaults(Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND);
      builder.setContentTitle(context.getString(R.string.notification_title));
      builder.setContentText(sb);
      builder.setTicker(context.getString(R.string.notification_ticker));
      builder.setNumber(++msgCounter);
      builder.setSmallIcon(R.drawable.ic_stat_notification);
      builder.setLargeIcon(largeIcon);
      builder.setContentIntent(resultPendingIntent);
      
      if(msgCounter > 1){
        Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
        if(msgCounter > 6){
          name[0] = new SpannableString("...");
          name[1] = name[2];
          name[2] = name[3];
          name[3] = name[4];
          name[4] = name[5];
          name[5] = sb;
        }else{
          name[msgCounter-1] = sb;
        }
        
        inboxStyle.setBigContentTitle(context.getString(R.string.notification_title));
        inboxStyle.setSummaryText(msgCounter+" "+context.getString(R.string.notification_title)+" Baru");
        
        for(int i=name.length; i > 0; i--){
          inboxStyle.addLine(name[i-1]);
        }
        
        builder.setStyle(inboxStyle);
        builder.setContentText(msgCounter+" "+context.getString(R.string.notification_title)+" Baru");
      }else{
        name[0] = sb;
      }
      manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
      manager.notify(notificationID, builder.build());
    } catch (NullPointerException e) {
      e.printStackTrace();
    }
    
  }
  
  public static int getAppVersion(Context context) {
        try {
            PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            return packageInfo.versionCode;
        } catch (NameNotFoundException e) {
            throw new RuntimeException("Could not get package name: " + e);
        }
    }
}




Java Source Code List

com.dimasdanz.kendalipintu.BarcodeOpenDoorActivity.java
com.dimasdanz.kendalipintu.DeviceStatusActivity.java
com.dimasdanz.kendalipintu.LogActivity.java
com.dimasdanz.kendalipintu.LoginActivity.java
com.dimasdanz.kendalipintu.MainActivity.java
com.dimasdanz.kendalipintu.NFCOpenDoorActivity.java
com.dimasdanz.kendalipintu.RemoteOpenDoor.java
com.dimasdanz.kendalipintu.SettingsActivity.java
com.dimasdanz.kendalipintu.SettingsFragment.java
com.dimasdanz.kendalipintu.SetupActivity.java
com.dimasdanz.kendalipintu.UserActivity.java
com.dimasdanz.kendalipintu.devicestatusmodel.DeviceStatusLoadData.java
com.dimasdanz.kendalipintu.devicestatusmodel.DeviceStatusSendData.java
com.dimasdanz.kendalipintu.logmodel.LogAdapter.java
com.dimasdanz.kendalipintu.logmodel.LogLoadData.java
com.dimasdanz.kendalipintu.logmodel.LogLoadDetail.java
com.dimasdanz.kendalipintu.logmodel.LogModel.java
com.dimasdanz.kendalipintu.opendoor.BarcodePreview.java
com.dimasdanz.kendalipintu.usermodel.UserAdapter.java
com.dimasdanz.kendalipintu.usermodel.UserDialogManager.java
com.dimasdanz.kendalipintu.usermodel.UserListView.java
com.dimasdanz.kendalipintu.usermodel.UserLoadData.java
com.dimasdanz.kendalipintu.usermodel.UserModel.java
com.dimasdanz.kendalipintu.usermodel.UserSendData.java
com.dimasdanz.kendalipintu.util.AdminLoginDialog.java
com.dimasdanz.kendalipintu.util.CommonUtilities.java
com.dimasdanz.kendalipintu.util.GcmBroadcastReceiver.java
com.dimasdanz.kendalipintu.util.GcmIntentService.java
com.dimasdanz.kendalipintu.util.JSONParser.java
com.dimasdanz.kendalipintu.util.LoginAuth.java
com.dimasdanz.kendalipintu.util.ServerUtilities.java
com.dimasdanz.kendalipintu.util.SharedPreferencesManager.java
com.dimasdanz.kendalipintu.util.StaticString.java
com.dimasdanz.kendalipintu.util.UniversalDialogManager.java