Best Android App InstaSquare Lite for full-size publication of photos in Instagram, Facebook, Twitter. Run the android application on PC. You can through the android emulator Droid4X.

Changeset 101

Show
Ignore:
Timestamp:
02/03/09 18:37:06 (12 months ago)
Author:
dmyung
Message:

fixed edit text multiline bug
fixed message view to have it look a bit more like the summary view
made dashboard more tolerant of screen orientation changes

Location:
trunk/rapidandroid/org.rapidandroid
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/rapidandroid/org.rapidandroid/res/layout/add_field.xml

    r75 r101  
    1717    <EditText android:id="@+id/etx_fieldname" 
    1818        android:layout_width="fill_parent" android:layout_height="wrap_content" 
    19         android:textSize="14sp"></EditText> 
     19        android:textSize="14sp" android:singleLine="true"></EditText> 
    2020 
    2121        <TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content" 
     
    2929        <EditText android:id="@+id/etx_fieldprompt" 
    3030        android:layout_width="fill_parent" android:layout_height="wrap_content" 
    31         android:textSize="14sp"></EditText> 
     31        android:textSize="14sp" android:singleLine="true"></EditText> 
    3232        <TextView android:id="@+id/lbl_fieldtypechoose" 
    3333        android:layout_width="fill_parent" android:layout_height="wrap_content" 
  • trunk/rapidandroid/org.rapidandroid/res/layout/form_create.xml

    r90 r101  
    1414                                <EditText android:id="@+id/etx_formname" 
    1515                                android:layout_width="fill_parent" android:layout_height="wrap_content" 
    16                                 android:textSize="14sp" android:layout_weight="2"></EditText> 
     16                                android:textSize="14sp" android:layout_weight="2" android:singleLine="true"></EditText> 
    1717                                        <TextView android:layout_width="wrap_content" 
    1818                                android:layout_height="wrap_content" android:text="@string/lbl_formprefix" android:id="@+id/lbl_formprefix" android:layout_weight="0"> 
     
    2222android:layout_width="fill_parent" 
    2323android:layout_height="wrap_content" 
    24 android:textSize="14sp" android:layout_weight="2"></EditText> 
     24android:textSize="14sp" android:layout_weight="2" android:singleLine="true"></EditText> 
    2525         
    2626        </TableRow> 
     
    3636android:layout_width="fill_parent" 
    3737android:textSize="14sp" 
    38 android:singleLine="false" 
    39 android:gravity="top" android:layout_height="wrap_content" android:layout_weight="2"></EditText>                 
     38android:gravity="top" android:layout_height="wrap_content" android:layout_weight="2" android:singleLine="true"></EditText>               
    4039                                 
    4140                                </TableRow> 
  • trunk/rapidandroid/org.rapidandroid/src/org/rapidandroid/activity/Dashboard.java

    r97 r101  
    5454 *  
    5555 */ 
    56 public class Dashboard extends Activity {        
    57          
    58         private SingleRowHeaderView headerView; 
     56public class Dashboard extends Activity {                
     57 
    5958        private SummaryCursorAdapter summaryView;  
    6059        private FormDataGridCursorAdapter rowView; 
    6160        private MessageCursorAdapter messageCursorAdapter; 
    6261         
    63         //private ProgressDialog mLoadingDialog; 
    64          
     62        //private ProgressDialog mLoadingDialog;         
    6563         
    6664        private Form mChosenForm = null; 
    67          
    68                  
    69         private boolean mShowMonitors = false; 
    7065        private boolean mShowAllMessages = false; 
    7166 
     
    8277        // private static final int MENU_EXIT = Menu.FIRST + 3; //waitaminute, we 
    8378        // don't want to exit this thing, do we? 
    84  
    85          
     79         
     80        private static final String STATE_DATE_START = "startdate"; 
     81        private static final String STATE_DATE_END = "enddate"; 
     82        private static final String STATE_SPINNER_POSITION = "spinneritem"; 
     83        private static final String STATE_SELECTED_FORM = "selectedform"; 
     84        private static final String STATE_LSV_POSITION = "listposition"; 
     85        private static final String STATE_LSV_VIEWMODE = "viewmode"; 
    8686         
    8787        private static final int CONTEXT_ITEM_SUMMARY_VIEW = Menu.FIRST; 
     
    104104        boolean resetCursor = true;  
    105105        Cursor mListviewCursor = null;  
     106        private int selectedListViewPosition = -1; 
    106107         
    107108        private Date mStartDate; 
     
    115116                requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    116117                setTitle("RapidAndroid :: Dashboard");           
    117                 setContentView(R.layout.dashboard); 
    118  
    119 //              if (savedInstanceState != null) { 
    120 //                      String from = savedInstanceState.getString("from"); 
    121 //                      String body = savedInstanceState.getString("body"); 
    122 //                      //dialogMessage = "SMS :: " + from + " : " + body; 
    123 //                      //showDialog(160); 
    124 //              } 
    125                  
    126 //              mLoadingDialog = new ProgressDialog(this,ProgressDialog.STYLE_HORIZONTAL); 
    127 //              mLoadingDialog.setMessage("Loading data..."); 
    128 //              mLoadingDialog.setTitle("Please wait"); 
    129 //              mLoadingDialog.setIndeterminate(true); 
    130 //              mLoadingDialog.setCancelable(false);                     
    131  
    132                 this.loadFormSpinner(); 
    133  
     118                setContentView(R.layout.dashboard);              
     119                this.initFormSpinner(); 
    134120                // Set the event listeners for the spinner and the listview 
    135121                Spinner spin_forms = (Spinner) findViewById(R.id.cbx_forms); 
     
    176162                                        ((SummaryCursorAdapter) adapter.getAdapter()).toggle(position); 
    177163                                } 
    178  
    179                         } 
    180  
     164                        } 
    181165                });      
    182166                 
     
    184168                mEndDate = new Date(); 
    185169                mStartDate = new Date(); 
    186                 mStartDate.setDate(mEndDate.getDate() - 1); 
     170                mStartDate.setDate(mEndDate.getDate() - 1);              
     171        } 
     172         
     173        /* (non-Javadoc) 
     174         * @see android.app.Activity#onRestoreInstanceState(android.os.Bundle) 
     175         */ 
     176        @Override 
     177        protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     178                super.onRestoreInstanceState(savedInstanceState); 
     179                if (savedInstanceState != null) { 
     180                        if (savedInstanceState.containsKey(STATE_DATE_START) 
     181                                        && savedInstanceState.containsKey(STATE_DATE_END) 
     182                                        && savedInstanceState.containsKey(STATE_SPINNER_POSITION) 
     183                                //      && savedInstanceState.containsKey(STATE_LSV_POSITION) 
     184                                        && savedInstanceState.containsKey(STATE_LSV_VIEWMODE) 
     185                                        //&& savedInstanceState.containsKey(STATE_SELECTED_FORM) 
     186                                        ) { 
     187                                 
     188                                try { 
     189                                        mStartDate = Message.SQLDateFormatter.parse(savedInstanceState.getString(STATE_DATE_START)); 
     190                                        mEndDate = Message.SQLDateFormatter.parse(savedInstanceState.getString(STATE_DATE_END)); 
     191                                } catch (ParseException e) { 
     192                                        // TODO Auto-generated catch block 
     193                                        e.printStackTrace(); 
     194                                } 
     195                                formViewMode = savedInstanceState.getInt(STATE_LSV_VIEWMODE); 
     196                                 
     197                                Spinner spin_forms = (Spinner) findViewById(R.id.cbx_forms); 
     198                                spin_forms.setSelection(savedInstanceState.getInt(STATE_SPINNER_POSITION));                              
     199                        } 
     200                                         
     201                         
     202//                      String from = savedInstanceState.getString("from"); 
     203//                      String body = savedInstanceState.getString("body"); 
     204//                      //dialogMessage = "SMS :: " + from + " : " + body; 
     205//                      //showDialog(160); 
     206                } 
     207        } 
     208 
     209        /* (non-Javadoc) 
     210         * @see android.app.Activity#onSaveInstanceState(android.os.Bundle) 
     211         */ 
     212        @Override 
     213        protected void onSaveInstanceState(Bundle outState) { 
     214                // TODO Auto-generated method stub 
     215                super.onSaveInstanceState(outState); 
     216                outState.putString(STATE_DATE_START, Message.SQLDateFormatter.format(mStartDate)); 
     217                outState.putString(STATE_DATE_END, Message.SQLDateFormatter.format(mEndDate)); 
     218                outState.putInt(STATE_LSV_VIEWMODE, formViewMode); 
     219                Spinner spin_forms = (Spinner) findViewById(R.id.cbx_forms); 
     220                outState.putInt(STATE_SPINNER_POSITION,spin_forms.getSelectedItemPosition()); 
    187221        } 
    188222 
     
    201235                case ACTIVITY_CREATE: 
    202236                        // we should do an update of the view 
    203                         loadFormSpinner();               
     237                        initFormSpinner();               
    204238                        resetCursor = true; 
    205239                        beginListViewReload(); 
     
    350384 
    351385                // we want to chart for a form 
    352                 if (mChosenForm != null && !mShowAllMessages && !mShowMonitors) { 
     386                if (mChosenForm != null && !mShowAllMessages) { 
    353387                        Date endDate = new Date(); 
    354388                        endDate = ParsedDataReporter.getOldestMessageDate(this,mChosenForm);     
     
    364398                        i.putExtra(ChartData.CallParams.CHART_FORM, mChosenForm 
    365399                                                        .getFormId()); 
    366                 } else if (mShowAllMessages && !mShowMonitors) { 
     400                } else if (mShowAllMessages) { 
    367401                        // Chart for messages 
    368402                        i.putExtra(ChartData.CallParams.CHART_MESSAGES, true); 
    369                 } else if (mShowMonitors && !mShowAllMessages) { 
    370                         //Chart for monitors 
    371                 }                
     403                }        
    372404                i.putExtra(ChartData.CallParams.START_DATE, Message.SQLDateFormatter.format(mStartDate)); 
    373405                i.putExtra(ChartData.CallParams.END_DATE, Message.SQLDateFormatter.format(mEndDate)); 
     
    377409 
    378410        // This is a call to the DB to get all the forms that this form can support. 
    379         private void loadFormSpinner() { 
     411        private void initFormSpinner() { 
    380412                // The steps: 
    381413                // get the spinner control from the layouts 
     
    385417                this.mAllForms = ModelTranslator.getAllForms(); 
    386418 
    387                 String[] monitors = new String[mAllForms.length + 2]; 
     419                String[] monitors = new String[mAllForms.length + 1]; 
    388420                 
    389421 
     
    393425                 
    394426                //add some special selections: 
    395                 monitors[monitors.length - 2] = "Show all Messages"; 
    396                 monitors[monitors.length - 1] = "Show Monitors"; 
     427                monitors[monitors.length - 1] = "Show all Messages"; 
     428                //monitors[monitors.length - 1] = "Show Monitors"; 
    397429                 
    398430                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, monitors); 
     
    407439                        mChosenForm = null; 
    408440                        this.mShowAllMessages = true; 
    409                         this.mShowMonitors = false; 
    410441                        resetCursor = true; 
    411442                        beginListViewReload(); 
    412                         //loadListViewWithRawMessages(); 
    413                          
    414  
    415                 } else if (position == mAllForms.length + 1) { 
    416                         // then it's show all monitors                   
    417                         mChosenForm = null; 
    418                         this.mShowAllMessages = false; 
    419                         this.mShowMonitors = true; 
    420                         resetCursor = true; 
    421                         beginListViewReload(); 
    422                         //loadListViewsWithMonitors(); 
    423                          
     443                        //loadListViewWithRawMessages();                         
     444 
    424445                } else { 
    425446                        this.mShowAllMessages = false; 
    426                         this.mShowMonitors = false; 
    427447                        mChosenForm = mAllForms[position]; 
    428448                        resetCursor = true; 
    429                         beginListViewReload(); 
    430                         //loadListViewWithFormData(true); 
    431                 }                
     449                        beginListViewReload();                   
     450                } 
    432451        } 
    433452                 
     
    441460        ListView lsv = (ListView) findViewById(R.id.lsv_dashboardmessages);              
    442461                 
    443         if(mChosenForm != null && !mShowAllMessages && !mShowMonitors) { 
     462        if(mChosenForm != null && !mShowAllMessages) { 
    444463                loadListViewWithFormData(); 
    445464        } 
    446         else if(mShowAllMessages && mChosenForm == null && !mShowMonitors) { 
     465        else if(mShowAllMessages && mChosenForm == null) { 
    447466                        this.messageCursorAdapter = new MessageCursorAdapter(this, mListviewCursor); 
    448467                        lsv.setAdapter(messageCursorAdapter); 
    449468        } 
    450         else if(mShowMonitors && !mShowAllMessages && mChosenForm==null) {               
    451                 lsv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, new String[] {"todo"}));               
    452                  
    453         }        
     469         
    454470    } 
    455471     
     
    479495    private void fillCursorInBackground() { 
    480496        if(mListviewCursor == null) { 
    481                 if(mChosenForm != null && !mShowAllMessages && !mShowMonitors) { 
    482                         String whereclause = " rapidandroid_message.time > '" + Message.SQLDateFormatter.format(mStartDate) + "' AND time < '" + Message.SQLDateFormatter.format(mEndDate) + "'"; 
     497                if(mChosenForm != null && !mShowAllMessages) { 
     498                        String whereclause = " rapidandroid_message.time >= '" + Message.SQLDateFormatter.format(mStartDate) + "' AND time <= '" + Message.SQLDateFormatter.format(mEndDate) + "'"; 
    483499                        mListviewCursor = getContentResolver().query(Uri.parse(RapidSmsDBConstants.FormData.CONTENT_URI_PREFIX + mChosenForm.getFormId()), null,whereclause,null,null); 
    484500                         
    485                 } else if(mShowAllMessages && mChosenForm == null && !mShowMonitors) { 
    486                         String whereclause = "time > '" + Message.SQLDateFormatter.format(mStartDate) + "' AND time < '" + Message.SQLDateFormatter.format(mEndDate) + "'"; 
     501                } else if(mShowAllMessages && mChosenForm == null) { 
     502                        String whereclause = "time >= '" + Message.SQLDateFormatter.format(mStartDate) + "' AND time <= '" + Message.SQLDateFormatter.format(mEndDate) + "'"; 
    487503                        mListviewCursor = getContentResolver().query(RapidSmsDBConstants.Message.CONTENT_URI, null, whereclause, null, "time DESC"); 
    488504                         
    489                 } else if(mShowMonitors && !mShowAllMessages && mChosenForm==null) { 
    490                         //do something 
    491 //                      query.append("WHERE rapidandroid_message.time > '" + startDate.get(Calendar.YEAR) + "-" + (startDate.get(Calendar.MONTH)+1) + "-" + startDate.get(Calendar.DATE) + "' AND "); 
    492 //                      query.append(" rapidandroid_message.time < '" + endDate.get(Calendar.YEAR) + "-" + (1+endDate.get(Calendar.MONTH)) + "-" + endDate.get(Calendar.DATE) + "';"); 
    493 //               
    494                 }        
     505                }        
    495506        }        
    496507    } 
  • trunk/rapidandroid/org.rapidandroid/src/org/rapidandroid/view/adapter/MessageCursorAdapter.java

    r94 r101  
    99import android.content.Context; 
    1010import android.database.Cursor; 
     11import android.view.Gravity; 
    1112import android.view.View; 
    1213import android.view.ViewGroup; 
     
    1415import android.widget.LinearLayout; 
    1516import android.widget.TableLayout; 
     17import android.widget.TableRow; 
    1618import android.widget.TextView; 
    1719 
     
    6567        private class SimpleMessageView extends TableLayout { 
    6668 
     69                 
     70                private TableRow mHeaderRow; 
     71                private TextView txvDate; 
     72                private TextView txvFrom; 
    6773                private TextView txvMessage; 
    68                 private TextView txvHeader; 
     74 
    6975                 
    7076                 
    7177                public SimpleMessageView(Context context, String message, Date timestamp, int monitorID, boolean isOutgoing) { 
    7278                        super(context); 
    73                         txvHeader = new TextView(context); 
    74                         txvHeader.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
     79                        mHeaderRow = new TableRow(context); 
     80                         
     81                        txvDate = new TextView(context); 
     82                        txvDate.setTextSize(16); 
     83                        txvDate.setPadding(3,3,3,3); 
     84                        txvDate.setGravity(Gravity.LEFT); 
     85                        txvFrom = new TextView(context); 
     86                        txvFrom.setTextSize(16); 
     87                        txvFrom.setPadding(3,3,8,3); 
     88                        txvFrom.setGravity(Gravity.RIGHT); 
     89                         
    7590                        //this.addView(txvHeader, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    76                         this.addView(txvHeader); 
     91                        mHeaderRow.addView(txvDate); 
     92                        mHeaderRow.addView(txvFrom); 
     93                        addView(mHeaderRow); 
    7794                         
    7895                        txvMessage = new TextView(context); 
     96                        txvMessage.setTextSize(12); 
     97                        txvMessage.setPadding(8,2,8,2); 
    7998                        //this.addView(txvMessage, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    8099                        this.addView(txvMessage); 
     100                         
     101                        this.setColumnStretchable(0, true); 
     102                        this.setColumnStretchable(1, true); 
    81103                         
    82104                        setData(message,timestamp,monitorID,isOutgoing); 
     
    85107                 
    86108                public void setData(String message, Date timestamp, int monitorID, boolean isOutgoing) { 
    87                         StringBuilder sb = new StringBuilder(); 
    88                         if(isOutgoing) { 
    89                                 sb.append("[Out] <<< "); 
    90                         } else { 
    91                                 sb.append("[In] >>> " ); 
    92                         } 
     109                        txvDate.setText(Message.DisplayDateTimeFormat.format(timestamp)); 
    93110                         
    94                         sb.append(Message.DisplayDateTimeFormat.format(timestamp) + " ["); 
    95111                        Monitor m = MessageTranslator.GetMonitor(getContext(), monitorID); 
    96                         sb.append(m.getPhone() + "]");                   
    97                         //txvHeader.setText(Message.DisplayDateTimeFormat.format(timestamp)); 
    98                         txvHeader.setText(sb.toString()); 
     112                        txvFrom.setText(m.getPhone()); 
    99113                         
    100114                        txvMessage.setText(message);