Giter VIP home page Giter VIP logo

pinnit's Introduction

Pinnit

Notification history and pinning

CI

Development

Pinnit is written entirely in Kotlin & uses latest Android libraries like

Setup

Requires Android Studio 4.0.0 or above

Code style

Project already has a code style. You can find the XML to import here

Links

Get it on Google Play

Contributors

License

Copyright 2020 Sasikanth Miriyampalli

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

pinnit's People

Contributors

cyanwolfg avatar msasikanth avatar prattidev avatar renovate[bot] avatar ricknout avatar subhrajyotisen avatar tramline-github[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pinnit's Issues

Spell check not working

Hi @msasikanth

Really like your implementation!

However, I miss spell check ability.

Using SwiftKey at the moment but it's not showing with the spell check option when creating a new note.

Any ideas?

Thanks!

Bad attachment at last release

v1.2.6 has an app-release.apk attached which is no APK โ€“ but a ZIP file containing an APK. Could you please fix that (and find out what caused it, so it can be avoided in the future)? Thanks!

Allow Suggestions / Predictions in the Title

When editing a pin suggestions aren't appearing when typing the title but they are appearing in the Description. Being able to select the suggestions (and swipe on supported keyboards) is extremely helpful and useful.

Add extension for adding `MobiusLoopViewModel` to `Fragment` or `Activity`

Currently in order to create the MobiusLoopViewModel we have to write all this code

  private val viewModel: MobiusLoopViewModel<NotificationsScreenModel, NotificationsScreenEvent, NotificationsScreenEffect, NotificationScreenViewEffect> by viewModels {
    object : ViewModelProvider.Factory {
      @Suppress("UNCHECKED_CAST")
      override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        return MobiusLoopViewModel.create<NotificationsScreenModel, NotificationsScreenEvent, NotificationsScreenEffect, NotificationScreenViewEffect>(
          Function { viewEffectConsumer ->
            loop(
              NotificationsScreenUpdate(),
              effectHandler.create(viewEffectConsumer)
            )
          },
          NotificationsScreenModel.default(),
          NotificationsScreenInit()
        ) as T
      }
    }
  }

It would be great to have a extension function to hide away the boiler plate code and just pass in the Mobius loop.

It has to be a lazy function as well because we will be accessing the UI as well as arguments or intent extras passed to the screen.

Crash when trying to change date

When trying to edit this and tapping there
Screenshot_20220602-084940_Pinnit_1.png
the app crashes.

I'm not sure but I think the issue might be that I previously set it to the 31st of May and June does not have 31 days.

Stack trace captured using Scoop:

FATAL EXCEPTION: main
Process: dev.sasikanth.pinnit, PID: 18959
java.lang.IllegalArgumentException: start Month cannot be after current Month
	at g.b.a.a.l.a.<init>(:3)
	at g.b.a.a.l.a$b.a(Unknown Source:50)
	at b.a.a.g.y.a(:60)
	at g.c.a.x.d.run(:1)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:223)
	at android.app.ActivityThread.main(ActivityThread.java:7664)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

GitHub APK releases?

Your app is listed on https://apt.izzysoft.de/fdroid/index/apk/dev.sasikanth.pinnit as it's not in the official F-Droid repo and I previously had APKs from there.
As far as I know, this repo is using a script to get the APK from GitHub.
I noticed you stopped attaching APKs to the releases from 1.2.5 and therefore I don't receive any updates.

Can you provide APKs again or maybe publish your app to F-Droid?

feature request: re-order pins/notifications

First of all: Thank you for creating this app! It's very useful and I use it a lot. ๐Ÿ™

Feature request:

It would be nice to be able to re-order the pins, so that the notifications are shown in that same order.
That way, you could make sure the most important notification is shown on top and catches your attention.

Add notification history support

Pinnit's original idea was to have notification history along with notification pinning. It was implemented in master-legacy branch. Need to re-approach this and implement it in existing app.

Alternative Download

Would you consider making your great FOSS app available outside the walled garden of Google Play โ€“ e.g. by attaching the (signed) APK file to your tags/releases, or bringing the app to F-Droid? That way, poor Huawei users and others without Play Store access could use it as well ๐Ÿ˜ƒ

Thanks in advance!

Feature request: add ability to rearrange the positions of the notifications

Hi! I use your app for my everyday life and really appreciate the work you put into the code. I only miss this one feature I'm requesting now: a way to easily rearrange the notification positions I already added. As a dirty workaround I used to add (or remove) spaces to the notification title or description and whatever I saved last will go to the first place so with some practice I can rearrange them but this is very clunky. Since it is actually possible I would like to ask you to add a long-press-and-move-around kind of rearrange method. Thank you very much!

Theme

Hi sir thank you for your hard work it will be nice from your if you add material you theme for the app๐Ÿ‘

Missing option "save only"

Whenever i have to create a note in the app, i need to choose the option "save and pin" but i don't always need to pin something, i just wanna put it there.

It would be nice if there is two options, namely the original one "save and pin" and only "save".

but currently to achieve that, i have to manually unpin it again

i get it that its not a "note taking" app and might be against the app orginal motive but please le me know if it's possible :)

QsPopupActivity visible in recents

Upon opening the app from QsPopupActivity -> Open App, the QsPopupActivity is still visible in the recents, which I'm not sure if it is the intended behaviour or not.

Use alarm manager for scheduling notifications

Is your feature request related to a problem?

Scheduled Notifications from Pinnit are shown delayed unless you grant unrestricted battery. AOSP 13.

What sultions would you like?

As far as I understand the Android platform, adding SCHEDULE_EXACT_ALARM should fix this.

Unexpected schedule behavior

I'm not sure if this is a bug or a feature, but if I tap "Unpin" in notifications, the notification no longer appears despite the schedule.

What I want: the notification appeared every day and I could swipe it away/unpin and it reappeared tomorrow according to the schedule.

Maybe I missed something, but the schedule seems to be working in a strange way.

Feature suggestion: Add pins notification

A notification for either pinning new apps without opening the app or open the app for new pins.

And thank you so much for this work :) I was looking for this kinda app, I found one then, Notable Plus(f droid) which was old.
Pinit has elegant UI and it's modest yet worthwhile

Google drive integration

I have atleast 3 Android phone and i use them all on regular basis and all of them have pinnit installed.

since the lack of any cloud services integration or any offline "note sharing" option, i have to create same note 3 times which is usually frustrating ๐Ÿ˜…

Android 13 - Pinnit not showing any notications

Since updating my Pixel 6 to Android 13, Pinnit isn't showing any notifications.
In the app settings, in the "notifications" menu, there's a message telling me that

At you request, Android is blocking this app's notifications from appearing on this device.

However, I have no idea how I could have requested that. ๐Ÿคท
Do not disturb is disabled, focus mode isn't enabled, ...
The toggle to enable notifications is greyed out and I can't click it.

I've cleared the app storage, removed and reinstalled the app, but without any luck.

Does anyone has any idea what could be the cause of this?

(I do realise this might be not app related, but an Android issue, but didn't know where else to ask.)

Device: Google Pixel 6
OS: Android 13
App version: 1.2.3

Screenshot (26 Sept 2022 19_12_50)

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/android_ci.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/checkout v4
  • actions/setup-java v4
  • reactivecircus/android-emulator-runner v2
.github/workflows/ci-release-artifacts.yml
  • tramlinehq/deploy-action v0.1.6
  • actions/setup-java v4
  • actions/upload-artifact v4
gradle
gradle.properties
settings.gradle.kts
build.gradle.kts
app/build.gradle.kts
gradle/libs.versions.toml
  • org.jetbrains.kotlin:kotlin-stdlib-jdk8 2.0.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.1
  • androidx.appcompat:appcompat 1.6.1
  • androidx.core:core-ktx 1.13.1
  • androidx.arch.core:core-testing 2.2.0
  • androidx.fragment:fragment-ktx 1.7.1
  • androidx.constraintlayout:constraintlayout 2.1.4
  • androidx.navigation:navigation-fragment-ktx 2.7.7
  • androidx.navigation:navigation-ui-ktx 2.7.7
  • androidx.room:room-runtime 2.6.1
  • androidx.room:room-ktx 2.6.1
  • androidx.room:room-compiler 2.6.1
  • androidx.room:room-testing 2.6.1
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.8.0
  • androidx.lifecycle:lifecycle-viewmodel-savedstate 2.8.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.8.0
  • androidx.lifecycle:lifecycle-common-java8 2.8.0
  • androidx.work:work-runtime-ktx 2.9.0
  • androidx.work:work-testing 2.9.0
  • androidx.datastore:datastore 1.1.1
  • androidx.vectordrawable:vectordrawable-seekable 1.0.0
  • androidx.compose:compose-bom 2024.05.00
  • com.google.android.material:material 1.12.0
  • com.squareup.leakcanary:leakcanary-android 2.14
  • com.google.dagger:hilt-android 2.51.1
  • androidx.hilt:hilt-work 1.2.0
  • com.google.dagger:hilt-android-compiler 2.51.1
  • androidx.hilt:hilt-compiler 1.2.0
  • com.google.dagger:hilt-android-testing 2.51.1
  • com.spotify.mobius:mobius-core 2.0.2
  • com.spotify.mobius:mobius-android 2.0.2
  • com.spotify.mobius:mobius-coroutines 2.0.2
  • com.spotify.mobius:mobius-test 2.0.2
  • de.hdodenhof:circleimageview 3.1.0
  • dev.chrisbanes:insetter-ktx 0.3.1
  • me.saket:better-link-movement-method 2.2.0
  • com.google.protobuf:protobuf-javalite 4.27.0
  • io.github.reactivecircus.flowbinding:flowbinding-material 1.2.0
  • com.android.tools:desugar_jdk_libs 2.0.4
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • com.google.truth:truth 1.4.2
  • org.mockito.kotlin:mockito-kotlin 5.3.1
  • androidx.test.espresso:espresso-core 3.5.1
  • com.android.application 8.4.1
  • com.android.library 8.4.1
  • org.jetbrains.kotlin.android 2.0.0
  • org.jetbrains.kotlin.plugin.parcelize 2.0.0
  • org.jetbrains.kotlin.plugin.compose 2.0.0
  • androidx.navigation.safeargs.kotlin 2.7.7
  • com.google.dagger.hilt.android 2.51.1
  • com.google.protobuf 0.9.4
  • com.google.devtools.ksp 2.0.0-1.0.21
  • dev.zacsweers.redacted 1.9.0
sharedTestCode/build.gradle.kts
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7

  • Check this box to trigger a request for Renovate to run again on this repository

Feature suggestion: Add tags

Hi! I have used this application, And I suggest the feature of adding a tag for each notification. It really helps to separate/group different Notification Types. Or if you create too many notifications, you can easily organize with tags. If not a tag, or it could be with a folder. Good luck always!

Allow disabling notification grouping.

I love using this app and the concept of putting reminders into the notification panel, which is frequently checked, is great. However, after adding more than 3 notifications, they automatically group into a single one. This makes it more difficult to see how much you need to get done as it only shows 2 reminders without expanding, or none if set to minimized (how I like it set).
Attached is a screenshot showing the difference between 3 and 4 pinned reminders with notifications set to minimized. You can see it shows the titles until they get grouped when it only shows the app name.
20221120_204345
Changing this is as simple as using .setGroup() with a unique string on each notification (such as the title, description, or both) to keep them all separate. It's a simple feature to add and, if there is a reason to group notifications, you could easily add a preference value and a check to the notification builder to allow the user to enable / disable it.
Attached is a screenshot of my one-line modification adding .setGroup(notification.title + content) to the builder
Screenshot_20221120-233711_Pinnit (D)

Add support for extracting dates and times

I wanted to use this as a way to easily stay reminded of appointments made over text messages or such. The share button already works great to create tasks from messages, but it would be awesome if it would be able to parse text looking for valid dates/times and automatically set a schedule based on that. So for example if I received a text message saying "Okay, let's meet up tomorrow at five" it would set the schedule for 17:00 the following day. Not sure how well Kotlin integrates with Java, but you might be able to use hawking for the actual parsing bit.

Easier way to use message as title

I installed Pinnit primarily to share messages from elsewhere to be reminded of them later. This works great, but a short message like "Great, let's meet up at 8" requiring a title is a bit silly. An easy fix for this would be to have a small swap button in the UI that allows you to swap the message for the empty title. Alternatively you could look at how long the message was and if it was shorter than some predetermined length it would simply become the title instead of the message. Or implement both for some added flexibility.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.