diff --git a/.idea/.name b/.idea/.name index fbadc2f..a6bd309 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -My Nav \ No newline at end of file +SMS Manager \ No newline at end of file diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml new file mode 100644 index 0000000..8ec256a --- /dev/null +++ b/.idea/render.experimental.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/androidTest/java/com/example/mynav/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/example/SMSManager/ExampleInstrumentedTest.kt similarity index 95% rename from app/src/androidTest/java/com/example/mynav/ExampleInstrumentedTest.kt rename to app/src/androidTest/java/com/example/SMSManager/ExampleInstrumentedTest.kt index abbad4c..7cbd791 100644 --- a/app/src/androidTest/java/com/example/mynav/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/example/SMSManager/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package com.example.mynav +package com.example.SMSManager import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 433fe79..7fdcc21 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="com.example.SMSManager"> @@ -10,24 +10,24 @@ - - + + - - + + diff --git a/app/src/main/java/com/example/mynav/Database.kt b/app/src/main/java/com/example/SMSManager/Database.kt similarity index 54% rename from app/src/main/java/com/example/mynav/Database.kt rename to app/src/main/java/com/example/SMSManager/Database.kt index 9cd6b45..31465d0 100644 --- a/app/src/main/java/com/example/mynav/Database.kt +++ b/app/src/main/java/com/example/SMSManager/Database.kt @@ -1,22 +1,25 @@ -package com.example.mynav +package com.example.SMSManager import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper -class Database(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { +class Database(context: Context) : SQLiteOpenHelper(context, + DATABASE_NAME, null, + DATABASE_VERSION +) { companion object { // If you change the database schema, you must increment the database version. const val DATABASE_VERSION = 1 const val DATABASE_NAME = "SMSFilters.db" } - private val CREATE_ENTRIES="CREATE TABLE "+"CATEGORIES_TABLE"+"( ID INTEGER PRIMARY KEY, "+"CATEGORY TEXT , "+"FILTER TEXT)" - private val DROP_TABLE="DROP TABLE IF EXISTS CATEGORIES_TABLE" + private val createEntries="CREATE TABLE "+"CATEGORIES_TABLE"+"( ID INTEGER PRIMARY KEY , "+"CATEGORY TEXT , "+"FILTER TEXT)" + private val dropTable="DROP TABLE IF EXISTS CATEGORIES_TABLE" override fun onCreate(db: SQLiteDatabase?) { - db?.execSQL(CREATE_ENTRIES) + db?.execSQL(createEntries) } override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { - db?.execSQL(DROP_TABLE) + db?.execSQL(dropTable) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/SMSManager/adapters/CategoryAdapter.kt b/app/src/main/java/com/example/SMSManager/adapters/CategoryAdapter.kt new file mode 100644 index 0000000..9971dde --- /dev/null +++ b/app/src/main/java/com/example/SMSManager/adapters/CategoryAdapter.kt @@ -0,0 +1,34 @@ +package com.example.SMSManager.adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.example.SMSManager.Database +import com.example.SMSManager.R +import kotlinx.android.synthetic.main.cat_recyclerview.view.* + +class CategoryAdapter(var category:String,var size:Int): RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view= LayoutInflater.from(parent.context).inflate(R.layout.cat_recyclerview,parent,false) + return ViewHolder(view) + } + + override fun getItemCount(): Int { + return size + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.itemView.apply { + tv_catrv.text=category + remove_cat.setOnClickListener { + val dbHelper = + Database(holder.itemView.context) + val db = dbHelper.writableDatabase + var new= arrayOf(category) + db.delete("CATEGORIES_TABLE","CATEGORY = ? ",new) + notifyItemRemoved(position) + notifyDataSetChanged() + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/mynav/adapters/FilterAdapter.kt b/app/src/main/java/com/example/SMSManager/adapters/FilterAdapter.kt similarity index 65% rename from app/src/main/java/com/example/mynav/adapters/FilterAdapter.kt rename to app/src/main/java/com/example/SMSManager/adapters/FilterAdapter.kt index d5b4cc9..84b2eed 100644 --- a/app/src/main/java/com/example/mynav/adapters/FilterAdapter.kt +++ b/app/src/main/java/com/example/SMSManager/adapters/FilterAdapter.kt @@ -1,18 +1,15 @@ -package com.example.mynav.adapters +package com.example.SMSManager.adapters -import android.content.Intent +import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.example.mynav.Database -import com.example.mynav.R -import com.example.mynav.util.AddFilter -import kotlinx.android.synthetic.main.add_filter.view.* +import com.example.SMSManager.Database +import com.example.SMSManager.R import kotlinx.android.synthetic.main.filter_recyclerview.view.* -import kotlinx.android.synthetic.main.individual_card.view.* -import kotlinx.android.synthetic.main.recyclerviewobj.view.* -class FilterAdapter (var category:String,var list:MutableList): RecyclerView.Adapter(){ + +class FilterAdapter(var category:String, var list: MutableList): RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view= LayoutInflater.from(parent.context).inflate(R.layout.filter_recyclerview,parent,false) return ViewHolder(view) @@ -26,11 +23,15 @@ class FilterAdapter (var category:String,var list:MutableList): Recycler holder.itemView.apply { tv_indfilter.text=list[position] remove_filter.setOnClickListener { - val dbHelper = Database(holder.itemView.context) + notifyDataSetChanged() + val dbHelper = + Database(holder.itemView.context) val db = dbHelper.writableDatabase var new= arrayOf(category,list[position]) + Log.d("list","removing $category 's "+list[position]) db.delete("CATEGORIES_TABLE","CATEGORY = ? AND FILTER = ?",new) list.removeAt(position) + Log.d("list",list.count().toString()) notifyItemRemoved(position) } } diff --git a/app/src/main/java/com/example/mynav/adapters/IndividualAdapter.kt b/app/src/main/java/com/example/SMSManager/adapters/IndividualAdapter.kt similarity index 80% rename from app/src/main/java/com/example/mynav/adapters/IndividualAdapter.kt rename to app/src/main/java/com/example/SMSManager/adapters/IndividualAdapter.kt index 1a0e235..e01b074 100644 --- a/app/src/main/java/com/example/mynav/adapters/IndividualAdapter.kt +++ b/app/src/main/java/com/example/SMSManager/adapters/IndividualAdapter.kt @@ -1,12 +1,12 @@ -package com.example.mynav.adapters +package com.example.SMSManager.adapters import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.example.mynav.R +import com.example.SMSManager.R import kotlinx.android.synthetic.main.individual_card.view.* -public class IndividualAdapter(var list:List): RecyclerView.Adapter() { +class IndividualAdapter(var list:List): RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view= LayoutInflater.from(parent.context).inflate(R.layout.individual_card,parent,false) return ViewHolder(view) diff --git a/app/src/main/java/com/example/mynav/adapters/MsgAdapter.kt b/app/src/main/java/com/example/SMSManager/adapters/MsgAdapter.kt similarity index 58% rename from app/src/main/java/com/example/mynav/adapters/MsgAdapter.kt rename to app/src/main/java/com/example/SMSManager/adapters/MsgAdapter.kt index 512a7b2..b4f784c 100644 --- a/app/src/main/java/com/example/mynav/adapters/MsgAdapter.kt +++ b/app/src/main/java/com/example/SMSManager/adapters/MsgAdapter.kt @@ -1,29 +1,27 @@ -package com.example.mynav.adapters +package com.example.SMSManager.adapters import android.content.Intent -import android.os.Build import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Toast -import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat.startActivity import androidx.recyclerview.widget.RecyclerView -import com.example.mynav.objects.MsgObj -import com.example.mynav.R -import com.example.mynav.objects.MsgList -import com.example.mynav.util.MainActivity -import com.example.mynav.util.MessageScreen +import com.example.SMSManager.R +import com.example.SMSManager.objects.MsgObj +import com.example.SMSManager.util.MessageScreen import kotlinx.android.synthetic.main.recyclerviewobj.view.* + public class MsgAdapter ( var msglist:List ): RecyclerView.Adapter() { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view= LayoutInflater.from(parent.context).inflate(R.layout.recyclerviewobj,parent,false) + + val view = + LayoutInflater.from(parent.context).inflate(R.layout.recyclerviewobj, parent, false) + return ViewHolder(view) } @@ -35,24 +33,20 @@ public class MsgAdapter ( override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.itemView.apply { - contact.text = msglist[position].name + contact.text = msglist[position].name msg_content.text = msglist[position].message - contact.contentDescription=msglist[position].num + contact.contentDescription = msglist[position].num } holder.itemView.setOnClickListener{ //Toast.makeText(holder.itemView.context,"CLICKED ON ${msglist[position].name}",Toast.LENGTH_SHORT).show() var intent = Intent(holder.itemView.context, MessageScreen::class.java) - intent.putExtra("NAME_EXTRA","${msglist[position].name}") - intent.putExtra("LAST_MESSAGE","${msglist[position].message}") - intent.putExtra("NUMBER_EXTRA","${msglist[position].num}") + intent.putExtra("NAME_EXTRA", msglist[position].name) + intent.putExtra("LAST_MESSAGE", msglist[position].message) + intent.putExtra("NUMBER_EXTRA", msglist[position].num) startActivity(holder.itemView.context,intent,null) } } } -interface OnClickListener { - fun onClick(msgList: MsgList) -} - -public class ViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView) \ No newline at end of file +public class ViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView) diff --git a/app/src/main/java/com/example/mynav/adapters/ViewPagerAdapter.kt b/app/src/main/java/com/example/SMSManager/adapters/ViewPagerAdapter.kt similarity index 67% rename from app/src/main/java/com/example/mynav/adapters/ViewPagerAdapter.kt rename to app/src/main/java/com/example/SMSManager/adapters/ViewPagerAdapter.kt index 212b0a4..f921006 100644 --- a/app/src/main/java/com/example/mynav/adapters/ViewPagerAdapter.kt +++ b/app/src/main/java/com/example/SMSManager/adapters/ViewPagerAdapter.kt @@ -1,13 +1,12 @@ -package com.example.mynav.adapters +package com.example.SMSManager.adapters import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.lifecycle.Lifecycle import androidx.viewpager2.adapter.FragmentStateAdapter -import com.example.mynav.fragments.KnownFrag -import com.example.mynav.fragments.UnknownFrag -import com.example.mynav.objects.MsgList -import com.example.mynav.util.MainActivity +import com.example.SMSManager.fragments.KnownFrag +import com.example.SMSManager.fragments.UnknownFrag +import com.example.SMSManager.util.MainActivity class ViewPagerAdapter (fm:FragmentManager?, lifecycle: Lifecycle): FragmentStateAdapter(fm!!,lifecycle){ override fun getItemCount(): Int { @@ -23,10 +22,12 @@ class ViewPagerAdapter (fm:FragmentManager?, lifecycle: Lifecycle): FragmentStat override fun createFragment(position: Int): Fragment { when(position){ - 0-> fragment= + 0-> fragment = KnownFrag(MainActivity.knownlist) - 1-> fragment= - UnknownFrag(MainActivity.unknownlist) + 1-> fragment = + UnknownFrag( + MainActivity.unknownlist2 + ) } return fragment!! } diff --git a/app/src/main/java/com/example/mynav/fragments/KnownFrag.kt b/app/src/main/java/com/example/SMSManager/fragments/KnownFrag.kt similarity index 76% rename from app/src/main/java/com/example/mynav/fragments/KnownFrag.kt rename to app/src/main/java/com/example/SMSManager/fragments/KnownFrag.kt index 54a5d10..4209c7e 100644 --- a/app/src/main/java/com/example/mynav/fragments/KnownFrag.kt +++ b/app/src/main/java/com/example/SMSManager/fragments/KnownFrag.kt @@ -1,21 +1,20 @@ -package com.example.mynav.fragments +package com.example.SMSManager.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager -import com.example.mynav.R -import com.example.mynav.adapters.MsgAdapter -import com.example.mynav.objects.MsgObj +import com.example.SMSManager.R +import com.example.SMSManager.adapters.MsgAdapter +import com.example.SMSManager.objects.MsgObj import kotlinx.android.synthetic.main.known_frag.* class KnownFrag(var mslist:MutableList): Fragment() { - public lateinit var msgAdapter: MsgAdapter + lateinit var msgAdapter: MsgAdapter override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/example/mynav/fragments/UnknownFrag.kt b/app/src/main/java/com/example/SMSManager/fragments/UnknownFrag.kt similarity index 71% rename from app/src/main/java/com/example/mynav/fragments/UnknownFrag.kt rename to app/src/main/java/com/example/SMSManager/fragments/UnknownFrag.kt index 005db8b..21bf621 100644 --- a/app/src/main/java/com/example/mynav/fragments/UnknownFrag.kt +++ b/app/src/main/java/com/example/SMSManager/fragments/UnknownFrag.kt @@ -1,23 +1,20 @@ -package com.example.mynav.fragments +package com.example.SMSManager.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Toast import androidx.fragment.app.Fragment -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import com.example.mynav.R -import com.example.mynav.adapters.MsgAdapter -import com.example.mynav.objects.MsgObj +import com.example.SMSManager.R +import com.example.SMSManager.adapters.MsgAdapter +import com.example.SMSManager.objects.MsgObj import kotlinx.android.synthetic.main.unknown_frag.* class UnknownFrag(var mslist:MutableList) :Fragment() { - public lateinit var msgAdapter: MsgAdapter + lateinit var msgAdapter: MsgAdapter override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/example/mynav/objects/Contact.kt b/app/src/main/java/com/example/SMSManager/objects/Contact.kt similarity index 76% rename from app/src/main/java/com/example/mynav/objects/Contact.kt rename to app/src/main/java/com/example/SMSManager/objects/Contact.kt index 5acd9eb..b330df4 100644 --- a/app/src/main/java/com/example/mynav/objects/Contact.kt +++ b/app/src/main/java/com/example/SMSManager/objects/Contact.kt @@ -1,4 +1,4 @@ -package com.example.mynav.objects +package com.example.SMSManager.objects class Contact(val name:String,val phno:String) { override fun toString(): String { diff --git a/app/src/main/java/com/example/mynav/objects/MsgList.kt b/app/src/main/java/com/example/SMSManager/objects/MsgList.kt similarity index 71% rename from app/src/main/java/com/example/mynav/objects/MsgList.kt rename to app/src/main/java/com/example/SMSManager/objects/MsgList.kt index a87656b..e81a4b2 100644 --- a/app/src/main/java/com/example/mynav/objects/MsgList.kt +++ b/app/src/main/java/com/example/SMSManager/objects/MsgList.kt @@ -1,4 +1,4 @@ -package com.example.mynav.objects +package com.example.SMSManager.objects class MsgList(var known_msglist:MutableList, var unknown_msglist:MutableList) { diff --git a/app/src/main/java/com/example/mynav/objects/MsgObj.kt b/app/src/main/java/com/example/SMSManager/objects/MsgObj.kt similarity index 81% rename from app/src/main/java/com/example/mynav/objects/MsgObj.kt rename to app/src/main/java/com/example/SMSManager/objects/MsgObj.kt index 0b2e41e..34d0211 100644 --- a/app/src/main/java/com/example/mynav/objects/MsgObj.kt +++ b/app/src/main/java/com/example/SMSManager/objects/MsgObj.kt @@ -1,4 +1,4 @@ -package com.example.mynav.objects +package com.example.SMSManager.objects class MsgObj ( var name:String , diff --git a/app/src/main/java/com/example/mynav/receiver/SMSRecvd.kt b/app/src/main/java/com/example/SMSManager/receiver/SMSRecvd.kt similarity index 60% rename from app/src/main/java/com/example/mynav/receiver/SMSRecvd.kt rename to app/src/main/java/com/example/SMSManager/receiver/SMSRecvd.kt index a25ad38..1531063 100644 --- a/app/src/main/java/com/example/mynav/receiver/SMSRecvd.kt +++ b/app/src/main/java/com/example/SMSManager/receiver/SMSRecvd.kt @@ -1,14 +1,13 @@ -package com.example.mynav.receiver +package com.example.SMSManager.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.Build import android.provider.Telephony -import android.widget.Toast import androidx.annotation.RequiresApi -import com.example.mynav.objects.MsgObj -import com.example.mynav.util.MainActivity +import com.example.SMSManager.objects.MsgObj +import com.example.SMSManager.util.MainActivity class SMSRecvd: BroadcastReceiver() { @@ -17,7 +16,13 @@ class SMSRecvd: BroadcastReceiver() { var instance= MainActivity.instance() var msg= Telephony.Sms.Intents.getMessagesFromIntent(intent) - instance.addsome(MsgObj(msg[0].displayOriginatingAddress, msg[0].messageBody,"")) + instance.addsome( + MsgObj( + msg[0].displayOriginatingAddress, + msg[0].messageBody, + "" + ) + ) //instance.addsome(MsgObj("hi","hello")) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mynav/util/AddCategory.kt b/app/src/main/java/com/example/SMSManager/util/AddCategory.kt similarity index 55% rename from app/src/main/java/com/example/mynav/util/AddCategory.kt rename to app/src/main/java/com/example/SMSManager/util/AddCategory.kt index 01a16ba..bf2c351 100644 --- a/app/src/main/java/com/example/mynav/util/AddCategory.kt +++ b/app/src/main/java/com/example/SMSManager/util/AddCategory.kt @@ -1,19 +1,22 @@ -package com.example.mynav.util +package com.example.SMSManager.util import android.content.ContentValues import android.os.Bundle import android.util.Log import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import com.example.mynav.Database -import com.example.mynav.R +import androidx.recyclerview.widget.LinearLayoutManager +import com.example.SMSManager.Database +import com.example.SMSManager.R +import com.example.SMSManager.adapters.CategoryAdapter +import com.example.SMSManager.adapters.FilterAdapter import kotlinx.android.synthetic.main.add_category.* class AddCategory:AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.add_category) - val dbHelper=Database(this) + val dbHelper= Database(this) val db=dbHelper.writableDatabase btnFilter.setOnClickListener { Log.wtf("database","Start") @@ -29,8 +32,26 @@ class AddCategory:AppCompatActivity() { } val newrow=db.insert("CATEGORIES_TABLE",null,values) + Log.d("Row Created is ",newrow.toString()) Toast.makeText(this,"$category - $filtertext added to database",Toast.LENGTH_SHORT).show() + rv_cat_disp.adapter= + CategoryAdapter( + category, + 1 + ) + rv_cat_disp.layoutManager=LinearLayoutManager(this) + rv_filter_disp.adapter= + FilterAdapter( + category, + AddFilter.getFilterList( + category, + db + ) + ) + rv_filter_disp.layoutManager=LinearLayoutManager(this) } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mynav/util/AddFilter.kt b/app/src/main/java/com/example/SMSManager/util/AddFilter.kt similarity index 81% rename from app/src/main/java/com/example/mynav/util/AddFilter.kt rename to app/src/main/java/com/example/SMSManager/util/AddFilter.kt index 7927449..c2d82c3 100644 --- a/app/src/main/java/com/example/mynav/util/AddFilter.kt +++ b/app/src/main/java/com/example/SMSManager/util/AddFilter.kt @@ -1,4 +1,4 @@ -package com.example.mynav.util +package com.example.SMSManager.util import android.content.ContentValues import android.database.sqlite.SQLiteDatabase @@ -10,10 +10,9 @@ import android.widget.ArrayAdapter import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager -import com.example.mynav.Database -import com.example.mynav.R -import com.example.mynav.adapters.FilterAdapter -import com.example.mynav.adapters.IndividualAdapter +import com.example.SMSManager.Database +import com.example.SMSManager.R +import com.example.SMSManager.adapters.FilterAdapter import kotlinx.android.synthetic.main.add_filter.* public class AddFilter: AppCompatActivity() { @@ -57,8 +56,11 @@ public class AddFilter: AppCompatActivity() { val db = dbHelper.writableDatabase Log.d("database", "hello") var spinlist = arrayListOf() - spinlist.add("SELECT VALUE") - spinlist= getCategories(spinlist,db) as ArrayList + spinlist.add("SELECT SMS-BOX") + spinlist= getCategories( + spinlist, + db + ) as ArrayList // var cursor = db.query(true,"CATEGORIES_TABLE", projection, null, null, null, null, null, null) // while (cursor.moveToNext()) { // spinlist.add(cursor.getString(cursor.getColumnIndex("CATEGORY"))) @@ -86,8 +88,16 @@ public class AddFilter: AppCompatActivity() { selectedpos=position if(position!=0) { var cat = spinlist[position] - var filter=getFilterList(cat,db) - var adapter=FilterAdapter(spinlist[position],filter) + var filter= + getFilterList( + cat, + db + ) + var adapter= + FilterAdapter( + spinlist[position], + filter + ) rv_filter.adapter=adapter rv_filter.layoutManager=LinearLayoutManager(cont) @@ -106,8 +116,15 @@ public class AddFilter: AppCompatActivity() { } val newrow = db.insert("CATEGORIES_TABLE", null, values) - var filter = getFilterList(cat, db) - var adapter = FilterAdapter(spinlist[selectedpos], filter) + var filter = + getFilterList( + cat, + db + ) + var adapter = FilterAdapter( + spinlist[selectedpos], + filter + ) rv_filter.adapter = adapter rv_filter.layoutManager = LinearLayoutManager(cont) add_filter_text.text=null @@ -115,8 +132,7 @@ public class AddFilter: AppCompatActivity() { Toast.makeText(cont,"ADD SOME TEXT",Toast.LENGTH_SHORT).show() } } - } - + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mynav/util/MainActivity.kt b/app/src/main/java/com/example/SMSManager/util/MainActivity.kt similarity index 71% rename from app/src/main/java/com/example/mynav/util/MainActivity.kt rename to app/src/main/java/com/example/SMSManager/util/MainActivity.kt index 6956767..df438e4 100644 --- a/app/src/main/java/com/example/mynav/util/MainActivity.kt +++ b/app/src/main/java/com/example/SMSManager/util/MainActivity.kt @@ -1,34 +1,24 @@ -package com.example.mynav.util +package com.example.SMSManager.util import android.Manifest -import android.annotation.SuppressLint import android.content.Intent import android.database.sqlite.SQLiteDatabase import android.net.Uri -import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.provider.ContactsContract import android.util.Log import android.view.View import android.view.View.VISIBLE -import android.widget.TextView -import android.widget.Toast -import androidx.annotation.RequiresApi import androidx.core.app.ActivityCompat import androidx.localbroadcastmanager.content.LocalBroadcastManager -import com.example.mynav.Database -import com.example.mynav.objects.MsgList -import com.example.mynav.objects.MsgObj -import com.example.mynav.R -import com.example.mynav.adapters.FilterAdapter -import com.example.mynav.adapters.MsgAdapter -import com.example.mynav.adapters.ViewPagerAdapter +import com.example.SMSManager.Database +import com.example.SMSManager.objects.MsgList +import com.example.SMSManager.objects.MsgObj +import com.example.SMSManager.R +import com.example.SMSManager.adapters.ViewPagerAdapter import com.google.android.material.tabs.TabLayoutMediator -import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton import kotlinx.android.synthetic.main.activity_main.* -import java.util.zip.Inflater -import kotlin.properties.Delegates public class MainActivity : AppCompatActivity() { @@ -36,6 +26,7 @@ public class MainActivity : AppCompatActivity() { //variables-------------------------------------------// companion object { public var unknownlist=mutableListOf() + public var unknownlist2=mutableListOf() public lateinit var inst: MainActivity public lateinit var categorylist:MutableList public lateinit var knownlist:MutableList @@ -43,17 +34,17 @@ public class MainActivity : AppCompatActivity() { public lateinit var boxlist:HashMap> public lateinit var contactlist: HashMap - public var mslist:MsgList?=null + public var mslist: MsgList?=null public fun instance() : MainActivity { return inst; } } - private val list = listOf("KNOWN","UNKNOWN") + private val list = listOf("PERSONAL","OTHERS") private lateinit var localBroadcastManager: LocalBroadcastManager - private lateinit var adapter:ViewPagerAdapter + private lateinit var adapter: ViewPagerAdapter private var reqcode: Int = 0 private var new = arrayOf( @@ -71,13 +62,13 @@ public class MainActivity : AppCompatActivity() { private fun initalise(){ - categorylist= mutableListOf() - knownlist= mutableListOf() + categorylist = mutableListOf() + knownlist = mutableListOf() msglist =HashMap>() - unknownlist= mutableListOf() + unknownlist = mutableListOf() contactlist = HashMap() - boxlist=HashMap>() - mslist=null + boxlist =HashMap>() + mslist =null } @@ -93,17 +84,25 @@ public class MainActivity : AppCompatActivity() { val dbHelper = Database(this) val db: SQLiteDatabase = dbHelper.writableDatabase var spinlist= arrayListOf() - spinlist= AddFilter.getCategories(spinlist,db) as ArrayList + spinlist= AddFilter.getCategories( + spinlist, + db + ) as ArrayList for(i in spinlist){ - unknownlist.add(MsgObj(i,"","SMSBOX")) + unknownlist.add( + MsgObj(i, "", "SMSBOX") + ) categorylist.add(i) } - saveContacts() refreshSMSbox() preparelist() - //prepareboxes(db) - mslist= MsgList(knownlist, unknownlist) + prepareboxes(db) + mslist = + MsgList( + knownlist, + unknownlist2 + ) adapter= ViewPagerAdapter( fm = supportFragmentManager, lifecycle = lifecycle @@ -147,18 +146,19 @@ public class MainActivity : AppCompatActivity() { floatingActionButton2.setOnClickListener{ floatingActionButton2.visibility= View.INVISIBLE floatingActionButton3.visibility=View.INVISIBLE - var intent= Intent(this,AddCategory::class.java) + var intent= Intent(this, AddCategory::class.java) startActivity(intent) isfb1click=false } floatingActionButton3.setOnClickListener{ floatingActionButton2.visibility= View.INVISIBLE floatingActionButton3.visibility=View.INVISIBLE - var intent= Intent(this,AddFilter::class.java) + var intent= Intent(this, AddFilter::class.java) startActivity(intent) isfb1click=false } - + db.close() + dbHelper.close() } override fun onPause() { @@ -166,6 +166,10 @@ public class MainActivity : AppCompatActivity() { super.onPause() } + override fun onDestroy() { + super.onDestroy() + } + override fun onStart() { inst =this super.onStart() @@ -217,7 +221,7 @@ public class MainActivity : AppCompatActivity() { msg = cursor.getString(cursor.getColumnIndex("body")) Log.d("smscheckfrom", "$name") - if(contactlist[name] !=null || (contactlist["${name.substring(3)}"]!=null&&contactlist[name] ==null)) { + if(contactlist[name] !=null || (contactlist["${name.substring(3)}"]!=null&& contactlist[name] ==null)) { Log.d("smscheckfromextendedif","${contactlist[name]}") if(msglist[name]==null){ msglist[name]= mutableListOf(msg) @@ -227,7 +231,13 @@ public class MainActivity : AppCompatActivity() { } } else{ - unknownlist.add(MsgObj("$name","$msg","$name")) + unknownlist.add( + MsgObj( + "$name", + "$msg", + "$name" + ) + ) } @@ -237,11 +247,23 @@ public class MainActivity : AppCompatActivity() { private fun preparelist(){ for((key,value) in msglist){ if(contactlist[key]!=null){ - knownlist.add(MsgObj(contactlist[key]!!,value.first(),key)) + knownlist.add( + MsgObj( + contactlist[key]!!, + value.first(), + key + ) + ) Log.d("preparelist","${value.last()}") } - if((contactlist["${key.substring(3)}"]!=null&&contactlist[key] ==null)){ - knownlist.add(MsgObj(contactlist["${key.substring(3)}"]!!,value.first(),key)) + if((contactlist["${key.substring(3)}"]!=null&& contactlist[key] ==null)){ + knownlist.add( + MsgObj( + contactlist["${key.substring( + 3 + )}"]!!, value.first(), key + ) + ) Log.d("preparelist","${value.last()}") } } @@ -266,22 +288,44 @@ public class MainActivity : AppCompatActivity() { } private fun prepareboxes(db:SQLiteDatabase){ - for (cate in categorylist){ - var filters=AddFilter.getFilterList(cate,db) - for(unknown in 0..unknownlist.size){ - if(unknownlist[unknown].name in filters){ - if(boxlist[cate]==null){ - boxlist[cate]= mutableListOf(unknownlist[unknown]) - } - else{ - boxlist[cate]?.add(unknownlist[unknown]) - } - //unknownlist.removeAt(unknown) - - } - - } - } + +for (msg in unknownlist){ + var bool=false + for(cat in categorylist){ + var filterlist= + AddFilter.getFilterList( + cat, + db + ) + Log.d("filter",filterlist.toString()) + var count=0 + for(item in filterlist){ + if(msg.name.contains(item,true)){ + count++ + } + else if(msg.message.contains(item,true)){ + count++ + } + else{ + break + } + } + Log.d("count filters","Done here "+count.toString()) + if(count==filterlist.size){ + if(boxlist[cat]==null){ + boxlist[cat]= mutableListOf(msg) + } + else{ + boxlist[cat]!!.add(msg) + } + Log.d("filterlist", boxlist[msg.name].toString()) + bool=true + } + } + if(!bool){ + unknownlist2.add(msg) + } +} } diff --git a/app/src/main/java/com/example/mynav/util/MessageScreen.kt b/app/src/main/java/com/example/SMSManager/util/MessageScreen.kt similarity index 54% rename from app/src/main/java/com/example/mynav/util/MessageScreen.kt rename to app/src/main/java/com/example/SMSManager/util/MessageScreen.kt index fb6ac63..f3fc136 100644 --- a/app/src/main/java/com/example/mynav/util/MessageScreen.kt +++ b/app/src/main/java/com/example/SMSManager/util/MessageScreen.kt @@ -1,17 +1,11 @@ -package com.example.mynav.util +package com.example.SMSManager.util import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.util.Log -import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager -import com.example.mynav.Database -import com.example.mynav.R -import com.example.mynav.adapters.IndividualAdapter -import com.example.mynav.adapters.MsgAdapter -import com.example.mynav.fragments.UnknownFrag -import com.example.mynav.objects.MsgObj -import com.example.mynav.util.MainActivity.Companion.msglist +import com.example.SMSManager.R +import com.example.SMSManager.adapters.IndividualAdapter +import com.example.SMSManager.adapters.MsgAdapter import kotlinx.android.synthetic.main.activity_message_screen2.* import kotlinx.android.synthetic.main.unknown_frag.* @@ -32,13 +26,17 @@ class MessageScreen : AppCompatActivity() { if (listofnums == null) { var newlist = mutableListOf(message) MainActivity.msglist[num] = newlist - var adapter = IndividualAdapter(newlist) + var adapter = + IndividualAdapter(newlist) //Toast.makeText(this, MainActivity.msglist[name]!![1],Toast.LENGTH_SHORT).show() rv_individual.adapter = adapter rv_individual.layoutManager = LinearLayoutManager(this) } else { - var adapter = IndividualAdapter(listofnums) + var adapter = + IndividualAdapter( + listofnums + ) //Toast.makeText(this, MainActivity.msglist[name]!![1],Toast.LENGTH_SHORT).show() rv_individual.adapter = adapter rv_individual.layoutManager = LinearLayoutManager(this) @@ -46,28 +44,32 @@ class MessageScreen : AppCompatActivity() { } else{ setContentView(R.layout.unknown_frag) - Toast.makeText(this,"IN ELSE",Toast.LENGTH_SHORT).show() - val dbHelper = Database(this) - val db = dbHelper.writableDatabase - var categorylist= arrayListOf() - categorylist=AddFilter.getFilterList(name,db) - - var newlist= mutableListOf() - Log.d("database","Starting") - Log.d("database",categorylist.toString()) - for (msg in MainActivity.unknownlist){ - if(msg.name in categorylist){ - newlist.add(msg) - } - for(each in categorylist){ - if(msg.message.contains(each,true)){ - newlist.add(msg) - } - } - + //Toast.makeText(this,"IN ELSE",Toast.LENGTH_SHORT).show() +// val dbHelper = Database(this) +// val db = dbHelper.writableDatabase +// var categorylist= arrayListOf() +// categorylist=AddFilter.getFilterList(name,db) +// +// var newlist= mutableListOf() +// Log.d("database","Starting") +// Log.d("database",categorylist.toString()) +// for (msg in MainActivity.unknownlist){ +// if(msg.name in categorylist){ +// newlist.add(msg) +// } +// for(each in categorylist){ +// if(msg.message.contains(each,true)){ +// newlist.add(msg) +// } +// } +// +// } +// //Log.d("database","Message 0"+newlist[0].message) + var newadapter= MainActivity.boxlist[name]?.let { + MsgAdapter( + it + ) } - //Log.d("database","Message 0"+newlist[0].message) - var newadapter=MsgAdapter(newlist) rv_unknownfrag.adapter=newadapter rv_unknownfrag.layoutManager=LinearLayoutManager(this) diff --git a/app/src/main/res/drawable-v24/.idea/codeStyles/Project.xml b/app/src/main/res/drawable-v24/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..681f41a --- /dev/null +++ b/app/src/main/res/drawable-v24/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/app/src/main/res/drawable-v24/.idea/modules.xml b/app/src/main/res/drawable-v24/.idea/modules.xml new file mode 100644 index 0000000..0a8c8a3 --- /dev/null +++ b/app/src/main/res/drawable-v24/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/.idea/vcs.xml b/app/src/main/res/drawable-v24/.idea/vcs.xml new file mode 100644 index 0000000..bc59970 --- /dev/null +++ b/app/src/main/res/drawable-v24/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/.idea/workspace.xml b/app/src/main/res/drawable-v24/.idea/workspace.xml new file mode 100644 index 0000000..a69fd38 --- /dev/null +++ b/app/src/main/res/drawable-v24/.idea/workspace.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1591852790578 + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/account.png b/app/src/main/res/drawable-v24/account.png new file mode 100644 index 0000000..ac25136 Binary files /dev/null and b/app/src/main/res/drawable-v24/account.png differ diff --git a/app/src/main/res/drawable-v24/baseline_add_circle_outline_black_18dp.png b/app/src/main/res/drawable-v24/baseline_add_circle_outline_black_18dp.png new file mode 100644 index 0000000..640b484 Binary files /dev/null and b/app/src/main/res/drawable-v24/baseline_add_circle_outline_black_18dp.png differ diff --git a/app/src/main/res/drawable/bg.xml b/app/src/main/res/drawable/bg.xml index f19ec53..632355c 100644 --- a/app/src/main/res/drawable/bg.xml +++ b/app/src/main/res/drawable/bg.xml @@ -2,12 +2,12 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/gradient.xml b/app/src/main/res/drawable/gradient.xml new file mode 100644 index 0000000..4488351 --- /dev/null +++ b/app/src/main/res/drawable/gradient.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index bcb1561..7e81379 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,7 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".util.MainActivity" + tools:context="com.example.SMSManager.util.MainActivity" android:orientation="vertical"> + android:src="@drawable/baseline_add_circle_outline_black_18dp" + android:scaleType="fitXY" + app:fabSize="normal" + fab:backgroundTint="#1ED761" /> @@ -47,10 +49,11 @@ android:layout_marginRight="30dp" android:layout_marginBottom="100dp" app:fabSize="mini" - android:text="Category" + android:text="ADD SMS BOX" android:clickable="true" android:focusable="true" - android:layout_marginEnd="30dp" /> + android:layout_marginEnd="30dp" + /> diff --git a/app/src/main/res/layout/activity_message_screen2.xml b/app/src/main/res/layout/activity_message_screen2.xml index 605d90b..86baec9 100644 --- a/app/src/main/res/layout/activity_message_screen2.xml +++ b/app/src/main/res/layout/activity_message_screen2.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".util.MessageScreen"> + tools:context="com.example.SMSManager.util.MessageScreen"> - - - + app:layout_constraintTop_toTopOf="parent" />