All Projects → hbang → Typestatus

hbang / Typestatus

Licence: apache-2.0
iMessage typing and read receipt indicators for the iOS status bar

Labels

Projects that are alternatives of or similar to Typestatus

Exkeyboard
3rd-party keyboard anywhere.
Stars: ✭ 10 (-85.71%)
Mutual labels:  logos
Snaphide
An iOS tweak to hide jailbreak and hooks from Snapchat.
Stars: ✭ 43 (-38.57%)
Mutual labels:  logos
Ioswechatfakelocation
A tweak that can fake location info in WeChat
Stars: ✭ 56 (-20%)
Mutual labels:  logos
Swipeformore
Manage Cydia packages via swipe.
Stars: ✭ 11 (-84.29%)
Mutual labels:  logos
Noannoyance
A CydiaSubstrate tweak to disable annoying iOS7 messages
Stars: ✭ 33 (-52.86%)
Mutual labels:  logos
Tweak Series
Repo for YouTube series
Stars: ✭ 44 (-37.14%)
Mutual labels:  logos
Lastgoogle
Mobile Substrate tweak to log songs played using the Google Play Music iOS app.
Stars: ✭ 8 (-88.57%)
Mutual labels:  logos
Tiktok God
🎶 The best free & open source tweak for TikTok app on iOS 12 - 14
Stars: ✭ 63 (-10%)
Mutual labels:  logos
Ccrevealloader
A theos tweak to load RevealServer.framework(support Reveal.app version 7) into iOS apps on jailbroken devices.
Stars: ✭ 35 (-50%)
Mutual labels:  logos
Python Scientific Computation
《Python科学计算》第二版张若愚老师的演示代码
Stars: ✭ 48 (-31.43%)
Mutual labels:  logos
Personal Tweaks
Tweaks that are extremely small, or are not really mine, but aren't forks either
Stars: ✭ 13 (-81.43%)
Mutual labels:  logos
Spectral
Make the iOS lockscreen proper with blurred album artwork!
Stars: ✭ 32 (-54.29%)
Mutual labels:  logos
Batchomatic
Batch install your tweaks, repos, saved .debs, tweak preferences, and hosts file!
Stars: ✭ 44 (-37.14%)
Mutual labels:  logos
Customwidgeticons
A library for iOS 5 widget devs to use custom icon images on the Notifications settings page.
Stars: ✭ 10 (-85.71%)
Mutual labels:  logos
Brand
Official brand assets for elementary, Inc.
Stars: ✭ 57 (-18.57%)
Mutual labels:  logos
Volumebar9
A jailbreak tweak to change the stock volume HUD
Stars: ✭ 10 (-85.71%)
Mutual labels:  logos
Mitsuhaxi
Universal iOS 11 audio visualizer
Stars: ✭ 44 (-37.14%)
Mutual labels:  logos
Ofxfurry
ofxFurry a simple addons furry mesh
Stars: ✭ 65 (-7.14%)
Mutual labels:  logos
Multiplexer
Multitasking Suite for iOS
Stars: ✭ 61 (-12.86%)
Mutual labels:  logos
Ecg Enabler
Enable ECG function anywhere with Apple Watch S4+ which is bought from ECG-enabled region
Stars: ✭ 48 (-31.43%)
Mutual labels:  logos

TypeStatus

iMessage typing and read receipt indicators for the iOS status bar. https://typestatus.com/

See also: TypeStatus for Mac.

Creating a TypeStatus provider

Documentation is available at hbang.github.io/TypeStatus.

Make sure TypeStatus is already installed on your device.

Theos includes headers and a linkable framework for TypeStatus, so you don’t need to worry about copying files over from your device.

To develop a provider, create a bundle project. You can do this with a Theos makefile similar to this one:

INSTALL_TARGET_PROCESSES = SpringBoard

include $(THEOS)/makefiles/common.mk

BUNDLE_NAME = MyAwesomeProvider
MyAwesomeProvider_FILES = XXXMyAwesomeProvider.m
MyAwesomeProvider_INSTALL_PATH = /Library/TypeStatus/Providers
MyAwesomeProvider_EXTRA_FRAMEWORKS = TypeStatusProvider

include $(THEOS_MAKE_PATH)/bundle.mk

A provider class subclasses from HBTSProvider. This must be the bundle’s principal class, defined in the Info.plist key NSPrincipalClass. Here is a simple example:

#import <TypeStatusProvider/TypeStatusProvider.h>

@interface XXXMyAwesomeProvider : HBLOProvider

@end
#import "XXXMyAwesomeProvider.h"

@implementation XXXMyAwesomeProvider

- (instancetype)init {
	self = [super init];

	if (self) {
		// do your thing to set up your notifications here…
	}

	return self;
}

- (void)receivedNotification:(NSNotification *)notification {
	// do your thing to get data from the notification here…
	NSString *sender = ;

	HBTSNotification *notification = [[HBTSNotification alloc] initWithType:HBTSMessageTypeTyping sender:sender iconName:nil];
	[self showNotification:notification];
}

@end

Or, alternatively, just create a stub class, and use HBTSProviderController to get an instance of your provider to cal showNotification: on. For instance:

#import "XXXMyAwesomeProvider.h"

@implementation XXXMyAwesomeProvider

@end
#import "XXXMyAwesomeProvider.h"
#import <TypeStatusProvider/TypeStatusProvider.h>

%hook XXXSomeClassInTheApp

- (void)messageReceived:(XXXMessage *)message {
	%orig;

	// do your thing to determine the message type and get data from the notification here…
	if (message.isTypingMessage) {
		NSString *sender = …;

		HBTSNotification *notification = [[HBTSNotification alloc] initWithType:HBTSMessageTypeTyping sender:sender iconName:nil];
		XXXMyAwesomeProvider *provider = (XXXMyAwesomeProvider *)[[HBTSProviderController sharedInstance] providerForAppIdentifier:@"com.example.awesomemessenger"];
		[provider showNotification:notification];
	}
}

%end

The iconName parameter can either be nil to use TypeStatus’s built-in icons for the predefined notification types, or the string of a status bar icon name, installed identically to the way you would for a libstatusbar icon.

You must also add ws.hbang.typestatus2 to the Depends: list in your control file. If TypeStatus isn’t present on the device, your binaries will fail to load. For example:

Depends: mobilesubstrate, something-else, some-other-package, ws.hbang.typestatus2 (>= 2.4)

You should specify the current version of TypeStatus as the minimum requirement, so you can guarantee all features you use are available.

License

Licensed under the Apache License, version 2.0. Refer to LICENSE.md.

See About.plist and our Translations page for credits.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].